打字猴:1.70387981e+09
1703879810
1703879811 当有善意或者恶意行为时,共识机器分别调用reportBenign和reportMalicious函数。
1703879812
1703879813 创建一个reporting合约的基本示例如下:
1703879814
1703879815
1703879816
1703879817
1703879818
1703879819
1703879820
1703879821 该代码无须解释说明。确保在验证器中,数组用验证器1的第一个地址和验证器2的第一个地址代替这些地址,因为我们将使用那些地址进行验证。现在编译上述合约。
1703879822
1703879823 现在创建规范文件。创建一个叫作spec.json的文件,放入下面的代码:
1703879824
1703879825
1703879826
1703879827
1703879828
1703879829
1703879830
1703879831 上述程序代码的工作原理如下:
1703879832
1703879833 ·engine属性用于设置共识协议和协议具体参数。这里的engine是authority-Round,也就是aura。gasLimitBoundDivisor决定gas上限调整,并有通常的以太坊值。在验证器属性中,有一个contract属性,即reporting合约的地址。stepDuration是以秒为单位的区块时间。
1703879834
1703879835 ·在params属性中,只有网络ID才是关键;在所有的链中,其他属性都是标准的。
1703879836
1703879837 ·genesis属性对于authorityRound共识有一些标准数值。
1703879838
1703879839 ·accounts属性用于列出网络中存在的最初账户和合约。前四个是标准以太坊内置合约,使用Solidity合约编写语言应当包括这些。第五个是reporting合约。确保把字节码替换成constructor参数中的字节码。最后一个账户是在验证器1 shell生成的第二个账户。它的用途是向网络提供以太币。用户可以用自己的地址替换它。
1703879840
1703879841 在继续下一步操作之前,创建另一个文件node.pwds,在其中放入所创建的账户的密码。该文件将被验证器用来解锁账户,签署区块。
1703879842
1703879843 3.启动节点
1703879844
1703879845 现在已经具备各种条件启动验证节点了。在第一个shell窗口中,运行如下命令以启动第一个验证节点:
1703879846
1703879847
1703879848
1703879849
1703879850 上述命令的工作原理如下:
1703879851
1703879852 ·—chain用于指定规范文件的路径。
1703879853
1703879854 ·-d用于指定数据目录。
1703879855
1703879856 ·—force-sealing用于确保即使没有交易也产生区块。
1703879857
1703879858 ·—engine-signer用于指定节点签署区块时使用的地址,即验证器的地址。如果可能有恶意机构,则推荐用—force-sealing,这将保证正确的链是最长的。确保把地址改为生成的那个地址,即在这个shell窗口生成的地址。
1703879859
[ 上一页 ]  [ :1.70387981e+09 ]  [ 下一页 ]