打字猴:1.703876147e+09
1703876147 区块链项目开发指南 [:1703875280]
1703876148 区块链项目开发指南 2.13 发现对等节点
1703876149
1703876150 节点是网络的一部分,它需要连接到网络中的一些其他节点,这样它可以广播交易/区块,并监听新的交易/区块。节点不需要连接到网络中的每一个节点;相反,它只连接到几个其他节点,这些节点再连接到另外几个节点。按照这个方式,整个网络彼此连接。
1703876151
1703876152 但是节点如何发现网络中的一些其他节点呢?没有每个节点都可以连接到的中央服务器,怎么交换信息呢?以太坊有自己的节点发现协议可用于解决这个问题,该协议以Kadelima协议为基础。在节点发现协议中有一种特殊的节点,叫作Bootstrap(初始启动)节点。Bootstrap节点保存了一段时间内与它们连接的所有节点的列表,但其本身不保存区块链。当对等节点连接到以太坊网络时,它们首先连接到Bootstrap节点,Bootstrap节点分享在刚才事先定义的时间里连接到它们的对等节点列表。然后对等节点与对等节点连接并同步。
1703876153
1703876154 可以有多种以太坊实例,也就是说,不同的网络每个都有自己的网络ID。两种主要的以太坊网络是主网和测试网。以太币在主网上交易,而测试网供开发人员进行测试。到目前为止,我们已经学习了关于主网区块链的所有知识。
1703876155
1703876156
1703876157 bootnode是以太坊Bootstrap节点最热门的实现。如果用户想使用自己的Bootstrap节点,可以使用bootnode。
1703876158
1703876159
1703876160
1703876161
1703876162 区块链项目开发指南 [:1703875281]
1703876163 区块链项目开发指南 2.14 Whisper和Swarm
1703876164
1703876165 Whisper和Swarm分别是去中心化的通信协议和存储平台,它们都由以太坊开发人员开发的。Whisper是一个去中心化的通信协议,Swarm则是一个去中心化的文件系统。
1703876166
1703876167 Whisper允许网络中的节点彼此通信。它支持广播、用户到用户、加密信息等,但不用于传输大数据。想更深入学习Whisper,请访问https://github.com/ethereum/wiki/wiki/Whisper,在https://github.com/ethereum/wiki/wiki/Whisper-Overview可以看到代码示例概述。
1703876168
1703876169 Swarm类似于Filecoin,二者最大的区别是技术细节和激励机制。Filecoin不惩罚存储;而Swarm惩罚存储。因此,这进一步提高了文件可用性。那么,Swarm中的激励机制如何工作?它有内部货币吗?事实上,Swarm没有内部货币,而是用以太币进行激励。在以太坊中有智能合约,智能合约记录激励情况。显然,智能合约不能与Swarm通信,但Swarm能与智能合约通信。所以用户基本上通过智能合约向存储付款,该支付在失效后被释放给存储。用户还可以向智能合约报失文件,在此情况下它可以惩罚存储。可以访问https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM了解Swarm和IPFS/Filecoin之间的区别,访问https://github.com/ethersphere/go-ethereum/blob/bzz-config/bzz/bzzcontract/swarm.sol查看智能合约代码。
1703876170
1703876171 在写本书时,Whisper和Swarm仍处于开发阶段,许多事情仍不明确。
1703876172
1703876173
1703876174
1703876175
1703876176 区块链项目开发指南 [:1703875282]
1703876177 区块链项目开发指南 2.15 geth
1703876178
1703876179 geth(或称为go-ethereum)是以太坊、Whisper和Swarm节点的一个实现。geth可以成为全部实现或者一些选定实现的一部分。合并它们的目的是让它们看起来像单一的DApp,通过一个节点客户端就可以访问三个DApp。
1703876180
1703876181 geth是一种CLI应用,它用Go语言编写,在主要的操作系统中都可使用。geth的当前版本还不支持Swarm,但支持Whisper的一些功能。在写本书时,geth的最新版本是1.3.5。
1703876182
1703876183
1703876184
1703876185
1703876186 区块链项目开发指南 [:1703875283]
1703876187 区块链项目开发指南 2.15.1 安装geth
1703876188
1703876189 geth可用于OS X、Linux和Windows操作系统。它支持两种类型的安装:二进制安装和脚本安装。在写本书时,geth的最新版本是1.4.13。让我们看看如何使用二进制安装方法在不同操作系统中进行安装。如果用户不得不修改geth源代码并安装,请使用脚本安装方法。我们不想改变源代码,因此将采用二进制安装。
1703876190
1703876191 1.OS X
1703876192
1703876193 推荐在OS X中使用brew安装geth。在终端运行下面两个命令安装geth:
1703876194
1703876195
1703876196
[ 上一页 ]  [ :1.703876147e+09 ]  [ 下一页 ]