打字猴:1.70387613e+09
1703876130 区块链项目开发指南 [:1703875279]
1703876131 区块链项目开发指南 2.12 gas
1703876132
1703876133 gas(燃料)是计算资源的计量单位。每一个交易都需要包含gas上限和为每个gas支付费用的单价(即每次计算的价格)。矿工可以选择接纳交易和收取费用。如果交易使用的gas少于或等于gas上限,交易继续进行。如果gas总数超过gas上限,则撤销所有修改,除了仍然合法且矿工仍然能够收到费用(费用计算方法是可以消耗的gas最大值和gas价格相乘)的交易。
1703876134
1703876135 矿工决定gas价格(即每次计算的价格)。如果交易gas价格低于矿工决定的gas价格,矿工将拒绝挖交易。gas价格以wei为单位。所以如果gas价格低于期望,矿工可以拒绝将交易接纳入区块。
1703876136
1703876137
1703876138 EVM的每个操作都被分配了一个数字,用以表示它可以消耗的gas。
1703876139
1703876140 交易成本影响一个账户可以转账给另一个账户的以太币上限。例如,如果某个账户里共有5个以太币,它不能把全部5个以太币转入其他账户,因为如果把所有以太币都汇走,账户就没有余额支付交易费了。
1703876141
1703876142 如果交易调用一个合约方法,且该方法发送一些以太币或者调用一些其他合约方法,就从调用合约方法的账户扣除交易费。
1703876143
1703876144
1703876145
1703876146
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。
[ 上一页 ]  [ :1.70387613e+09 ]  [ 下一页 ]