区块链终极攻略 请收下!

区块链终极攻略 请收下!

雷锋网AI财经评论出版社:想知道区块链是什么吗?想了解区块链基础知识?想知道区块链技术究竟是如何发展的吗?本指南为您一一解答。您还可以体验为自己构建自己的分布式应用程序(DApp)。接下来,您只需按照我们为您准备的分步说明进行操作即可。本文来自区块链应用开发指南howtotoken。雷锋网AI财经评论整理如下:

指南目录

1.什么是区块链

1.1 区块链关键组成部分

1.2 区块系统类型

1.3 区块链的演进

2. 区块链开发介绍

2.1 DApp开发存在的主要问题

2.2 区块链上的DApp开发工具

2.3 如何开发DApp

3.深潜

1. 什么是区块链?

区块链是一个分布式且不断增长的数据块或数据表,其中每个数据记录都被加密。每个区块包含全部或部分最新交易信息,一个交易计算器,和区块链版本号,以及前一个区块的加密哈希函数,幻数为——(添加新区块时,新区块由计算机块被赋予一个幻数,因此每个块都是唯一的)。

由于每个区块都有前一个区块的加密哈希、时间戳和交易数据,因此区块链上的信息很容易验证且无法删除。当数据记录在一个区块中时,前一个区块的数据不能在后续区块中被修改,因为区块链是分布式的,新区块一般采用点对点的网络管理方式

简单地说,区块链与谷歌文档非常相似。只有有权访问共享文档的人才能修改文档,并且每个人都会立即看到所做的更改。然而,与Google Docs 相比,区块链有两个主要特点:

在区块链中,已经发布的信息无法删除或编辑您可以添加新信息,但您不得删除或更改任何已添加到系统中的信息。

区块链是分布式的,没有专门的权限来控制它,它属于系统中的每个用户。谷歌文档存储在谷歌服务器上,原则上谷歌是管理这些文档的权威机构

为了让您更好地了解区块链,我们将解释区块链的主要组成部分、区块链的类型以及区块链系统是如何诞生的。

1.1 区块链的关键组成部分

所有区块链系统都有以下组件:

应用节点

每个区块链系统都有自己的节点应用,用户需要安装应用才能访问区块链。比特币钱包就是一个例子。

区块链生态系统有两种不同类型的节点应用:轻节点和全节点。轻节点适用于只接入区块链并在系统内进行交易的用户,如果需要更多服务则使用全节点。两者的主要区别是全节点需要下载完整的区块链,而轻节点只需要下载验证数据真实性的区块头。区块链上的大部分节点都是轻节点。全节点虽然占用更多的存储空间,消耗更多的流量,但是可以为用户提供更多的安全保障。

共享分类账

是节点应用程序内部起到管理作用的数据结构。当用户安装节点应用程序时,内部账本数据结构可以查看区块链上所有区块和交易的信息。

每个区块链生态系统中只存在一个共享账本,所有节点应用使用同一个共享账本。比如有很多客户端(节点应用)允许访问以太坊,这些客户端都可以同时运行,但是你通过所有客户端访问的以太坊账本是一样的。

共识算法

共识算法为区块链生态提供了基本规则,部分节点应用也应用了共识算法。共识算法决定了区块链系统如何获得所有节点的共享账本。区块链生态系统根据需要和目的使用不同的共识算法。比特币需要几分钟才能就账本达成共识(通过全节点验证账本),但Ripple 可以保证在几秒钟内达成共识。

验证分类帐的主要方法是通过时间证明、工作证明和股权证明。在允许节点参与建立共识之前,可以使用不同的方法来验证节点。建立不同的共识算法,所需的共识算法建立费和交易费会有所不同。

1.2 区块链系统的类型

区块链生态系统主要有两种类型:公共和私有。

在公链中,用户只要安装相关的区块链节点应用,就可以访问系统并在其中进行交易。公共区块链被称为比特币和以太坊。

联盟链中,用户需要通过验证才能参与。例如,网络使能器需要对新用户进行身份验证才能使用网络。因此只有“经过验证”或“受邀”的用户才能访问系统。联盟链通常用于企业业务运营。目前最流行的是在Hyperledger Fabric 平台上构建区块链联盟。在IBM网站上,有一个基于Hyperledger Fabric平台搭建联盟链的案例。

公有链适合普通用户使用,私有链一般供企业内部使用。

1.3 区块链的演变

2008年,中本聪首次推出比特币。不过,中本聪并不是第一个想到使用数字现金或使用分布式系统进行直接交易的人。可以说,比特币站在了加密领域巨人的肩膀上。斯图尔

t Haber 和 W. Scott Stornetta 于 1991 年描绘了一个与区块链基本相似的密码保护链块。

1997 年 Hashcash 工作量证明算法问世,目前这个算法是比特币挖矿系统的核心。Wei Dai 早在 1998 年就提出了一个名为 “B-Money” 的分散式电子现金系统,该系统通过工作量来“创造”金钱。Satoshi Nakamoto 创作的一篇关于比特币的文章中引用了 B-Money。然而,Nakamoto 是第一个将这些成就融合在一起的人,并将分布式点对点系统(现称为区块链)带入生活,从而实现数字货币交易。

从 2008 年问世至今,区块链生态系统发生了许多变化。这些系统分别是区块链技术几个“代”。区块链生态系统总共有四代,每一代都试图解决不同的问题,为区块链技术增加新的功能。接下来我们将更详细地介绍每一代区块链生态系统,以便让您了解四代区块链系统之间的不同以及新一代的系统到底带来了什么样的新功能

第一代

Bitcoin, Litecoin, Monero, Dash 等均为第一代区块链系统。

第一代区块链系统是第一批应用点对点分布式网络的系统。Satoshi Nakamoto 在比特币的白皮书中提到,这些系统可以在两方之间直接进行“电子现金”交易,无需通过第三方金融机构。第一代区块链作为完美开源支付系统,无需第三方参与。

第二代

Ethereum,NEO,Qtum 等均为第二代区块链系统。

系统可以为区块链添加了定制交易的智能合约技术,还扩大了区块链上的交易记录,融入了编程语言。以太坊为用户提供了创建“智能合约”的机会,使用 Solidity 语言添加几行代码来设置区块链系统内可定制交易的监管规则。

第三代

Bitshares,Lisk,ARK 等均为第三代区块链系统。

第三代区块链主要解决可扩展性的问题。随着比特币和其他系统的用户量不断壮大,需要进行大量交易,系统出现了低效率的问题。

为了解决扩展问题,第三代区块链在共识算法中引入了权益证明方法,该方法比传统的权益证明或价值证明方法更高效,更简洁。简而言之,它的工作原理如下:系统上所有的节点都有相同的投票权,然后他们选举出少量的“证人”。证人是挖矿和监控网络的人。获得挖矿机会是证人参与监测和建立共识的动力。通过少数目击者建立共识比通过所有节点建立共识更快,更高效,从而解决了可扩展性问题。

第四代

IOTA,EOS 等均为第四代区块链系统。

这些系统也解决了可扩展性这个问题,但解决方式与上一代不同。

EOS 通过构建一个“类似操作系统”的网络来解决可扩展性问题,该网络被委托权益证明,来实现水平扩展和垂直扩展。IOTA引入了一个新的区块链系统来解决问题,新的区块链系统完全不同于已经存在的区块链系统。新的区块链系统应用 Tangle 网络,是一种无区块,可扩展,轻量的分散式分类账。因为系统的共识算法,并且Tangle网络的内在组成决定网络可以实现自我调节。

值得注意的是,第四代区块链仍然没有达成共识。有些人声称区块链共识已经出现,而另有一些人说像 EOS 和 IOTA 这样的项目并不是新一代的区块链技术,因为它们只是解决了与第三代区块链相同的问题。

您可以关注另一个项目:闪电网络(Lightning Network)。于 2018 年 3 月 19 日发布测试版,闪电网络正在引入非连锁交易。基本上,目前所有基于区块链的项目都使用链上交易:用户之间的所有交易信息都被写入区块链网络的公共分类账中。将交易信息写入分类账中需要时间,并且只有通过全节点才能验证每笔交易。这就是为什么交易处理时间相对较长(比特币至少需要 10 分钟),而且交易费用高。

闪电网络是一个“第二层”网络,将在区块链的基础上进行脱链交易。工作方式是这样的:两个愿意进行交易的用户将通过受保护的支付渠道直接进行交易(这是中本聪在比特币开发初期所设想的)。交易之后,这两个用户会将一些加密货币放入多重签名地址,并更改其他用户从该地址兑换的金额。每个参与方都可以随时关闭这个支付渠道,两个用户的最新余额将被写入公共账中。这项技术可为用户提供立即付款服务,减少交易费用。并且保护了用户隐私,因为并非所有的小额交易都被写入公共账中,只有最后一笔余额记录公共账。虽然闪电网络仍处于测试阶段,但这个项目非常具有前景。诞生的阿尔特币可能会“杀死”比特币,因为更便宜,更快速的交易就是它的主要优势

2. 区块链发展简介

我们已经了解了什么是区块链,接下来让我们来仔细研究一下区块链的发展。 区块链技术最受欢迎的应用之一是 Dapps (分散式应用程序)。这些基本都是适用于区块链上的应用程序。听上去似乎很酷!

你也许会想,在区块链系统饱受关注的情况下,为什么只有这么少的 DApps 可用?答案很简单:并不是所有即将成功开发 DApp 的公司都已经把所有组件准备好。

2.1 DApp 开发面临的主要问题

DApp 开发需要类似于网络应用程序开发所需的工具:计算,文件存储,外部数据,货币化和支付。到 2017 年底,大约已经筹备完成 70%,货币化和支付工具已经开发完全并可以开始运营,但计算,文件存储和外部数据组件仍在开发中。

很多人使用的 DApp 时,堆栈开发相关的问题才会变得很重要,需要良好的可扩展性来支撑。所以这些问题暂时不会阻止 DApp 的创建,只是目前难以扩展它。这个行业发展非常迅速,今年早些时候堆栈可能会全面完成,我们便可以看到 DApp 数量的爆炸式增长。如果你也想参与 DApp 的未来,那你需要从开发简单的 DApps 开始。我们希望这篇指南能为您提供帮助。

正如您在下文将要看到的那样,创建一个简单的 DApp 是可以实现的,并没有那么困难。我们将指导您完成这个过程,以便您可以获得区块链的实践经验。本指南将会一步一步地进行指导,即使您之前没有任何编程经验,您也能够理解每个步骤。当然,如果您曾经使用过 Solidity 或者尝试编写过一些智能合约,那对于创建 DApp 来说,肯定有很大帮助。

2.2 在区块链上开发 DApp 需要的工具

首先,我们来看看 DApp 开发需要的主要工具:

Geth:用于运行以太坊全节点的命令接口。简而言之,这是一个连接以太坊区块链的应用程序。以太坊在此为所有操作系统提供安装说明。您将需要它,因为以太坊区块链是开发 DApps 的主要平台。

Solidity:在以太坊编写智能合约的编程语言。您可以在其网站上找到安装说明。您还需要安装 Solidity 编译器才能使用 Solidity 语言编写代码。

Truffle: DApps 的开发环境。您将需要创建,运行和测试所有分散的应用程序。Truffle 的安装方法见此超链接

Ganache:这是一个区块链模拟器。您可以使用它来测试您的 DApp,而无需连接到真实的以太坊区块链上。此超链接可安装 Ganache。

2.3 如何开发 DApp

现在让我们来看看开发 DApp 需要进行的主要步骤。不会涉及太多关于编码的细节,我们的目标是概述 DApp 开发到底是什么样子的。如果您想按照所有步骤进行编码,通过阅读每个步骤中的超链接也可完成。

1.安装 Geth。如上所述,您将需要它连接到以太坊的区块链。

2.启动以太坊节点,并连接其他节点,开始下载区块链。当您安装了 Geth 时,可以通过命令行完成区块链的下载。区块链下载大约需要10-15分钟,具体时间取决于您的互联网网速。在控制台的输出中,您可以看到区块号。下载完成后,输出中的区块号应接近此页面上的区块号。

3.如果你还没有安装 Truffle,那么现在安装。

4.创建一个 Truffle 项目,Truffle 将创建运行整个堆栈 DApp 所需的文件和目录,还会创建一个示例应用程序。

5.下一步是使用 Solidity 语言创建一个智能合约代码。这里有一个案例,关于如何创建一个简单的“投票”智能合约。

6.您需要用 Solidity 语言将代码添加到 Truffle 项目中。这里可以在这里找到。

7.继续开发您的智能合约。为此,您需要一个测试账户和一些以太币。更多关于设置账户和获取以太币的。

8.当你有一个帐户和以太币时,在区块链上运行您已经准备好的合约。这里有个关于在测试网络上开发合同教程。这个过程需要几分钟时间,具体时间取决于您合约的复杂程度和您计算机的容量

9.试着通过 Truffle 您的合约。如果一切正常运行,说明您的合同是完全正常的,您可以继续下一步。

10.启动服务器。如果一切正确,您将看到一个网页,显示您在合约中编写的内容,现在您便可以运行您的 DApp。

如果您已经按照教程中的所有步骤进行操作,那么您便可以创建了一个本地运行的 DApp。希望本教程能够让您体验在区块链上开发应用程序。

雷锋网

版权声明:区块链到底是什么 发表于 2023-04-20 8:45:49。
转载请注明:区块链终极攻略 请收下! | 零零洞洞

暂无评论

暂无评论...