打字猴:1.70387978e+09
1703879780
1703879781
1703879782
1703879783
1703879784 两次都会要求输入密码。现阶段,在两个账户中输入相同的密码。
1703879785
1703879786 在第二个shell中窗口,运行如下命令一次:
1703879787
1703879788
1703879789
1703879790
1703879791 和刚才一样,输入密码。
1703879792
1703879793 2.创建规范文件
1703879794
1703879795 每个网络的节点都分享一个通用规范文件(specification file)。该文件告诉节点关于创世区块、谁是验证器等信息。我们将创建一个智能合约,其中包含验证器列表。有两种类型的验证器合约:non-reporting合约和reporting合约。我们只需要提供一个。
1703879796
1703879797 这两种验证器合约的区别是:non-reporting合约只返回一个验证器列表;而reporting合约可以对善意(善意行为可能仅仅是不从一个给定的验证器接收区块)和恶意行为(恶意行为可能是在同一步骤释放两个不同的区块)采取行动。
1703879798
1703879799 non-reporting合约至少应该有如下界面:
1703879800
1703879801
1703879802
1703879803
1703879804 在每一个区块上调用getValidators函数,以决定当前列表。转换规则是由实现该方法的合约决定的。
1703879805
1703879806 reporting合约至少应该有如下界面:
1703879807
1703879808
1703879809
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
[ 上一页 ]  [ :1.70387978e+09 ]  [ 下一页 ]