打字猴:1.703879712e+09
1703879712 在PoW中两个矿工同时挖矿,最后网络是否有可能产生多个不同的区块链?是的,很多情况下都可能导致这样的结果。让我们看个例子来理解一种可能发生的情况以及网络自动解决冲突的方法。假设共有5个验证器:A、B、C、D和E。区块时间是5s。假设A首先被选中并广播一个区块,但是由于一些原因区块没有到达D和E,所以它们会认为A没有广播区块。现在假设选择算法选择B来生成下一个区块,则B将在A区块之上生成下一个区块并广播给所有的节点。D和E将拒绝它,因为前一个区块哈希不匹配。由此,D和E将形成一个不同的链,而A、B和C将形成一个不同的链。A、B和C将拒绝来自D和E的区块,而D和E将拒绝来自A、B和C的区块。这个问题可以这样解决,假设定义来自A、B和C的区块比来自D和E的区块更准确,因此D和E将用A、B和C版本的区块链替换自己的区块链。两个版本的区块链有不同的准确分,第一个区块链的分数高于第二个。当B广播它的区块时,它还将提供其区块链评分,因为其分数高,D和E就用B的区块链替换自己的区块链。这就是冲突的解决方法。区块链的分数使用(U128_max*BLOCK_NUMBER_OF_LATEST_BLOCK-(UNIX_TIMESTAMP_OF_LATEST_BLOCK/BLOCK_TIME))计算。首先用长度评分(区块越多越好),对于有同样长度的链,选择最后一个区块比较旧的链。
1703879713
1703879714 如果更深入地学习Aura,参见https://github.com/paritytech/parity/wiki/Aura。
1703879715
1703879716
1703879717
1703879718
1703879719 区块链项目开发指南 [:1703875410]
1703879720 区块链项目开发指南 9.3.2 运行parity
1703879721
1703879722 parity需要安装Rust版本1.16.0才能创建。推荐通过rustup安装Rust。
1703879723
1703879724 1.安装rust
1703879725
1703879726 如果还没有rustup,可以按照如下方式进行安装。
1703879727
1703879728 (1)Linux
1703879729
1703879730 在以Linux为基础的操作系统上,运行如下命令:
1703879731
1703879732
1703879733
1703879734
1703879735 parity还要求安装gcc、g++、libssl-dev/openssl、libudev-dev和pkg-config包。
1703879736
1703879737 (2)OS X
1703879738
1703879739 在OS X上,运行如下命令:
1703879740
1703879741
1703879742
1703879743
1703879744 parity还要求安装clang。clang来自Xcode命令行工具,或者可以用Homebrew安装。
1703879745
1703879746 (3)Windows
1703879747
1703879748 确保安装可使用C++的Visual Studio 2015。下一步,从https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustupinit.exe下载并运行rustup安装程序,启动VS2015 x64 Native Tools Command Prompt,并使用下面的命令安装和建立msvc工具链:
1703879749
1703879750
1703879751
1703879752
1703879753 2.下载、安装和运行parity
1703879754
1703879755 在操作系统上安装好rust之后,可以运行如下简单的在线命令安装parity:
1703879756
1703879757
1703879758
1703879759
1703879760 检测是否已经安装了parity,运行如下命令:
1703879761
[ 上一页 ]  [ :1.703879712e+09 ]  [ 下一页 ]