- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 业务网络动态组建示例:第二个节点 第二个节点向根节点发送消息DISC_HELLO,含有自己区块链的高度blockNumber和PeerEndpoint。 如果根节点应答的DISC_HELLO消息中的区块链高度高于第二个节点当前持有的,第二个节点立刻发起synchronization protocol以同步账本的必威体育精装版状态 此后第二个节点每5秒钟向所有的已知节点(目前只知道第一个节点)发送DISC_GET_PEERS消息获得加入网络的其它节点 第一个节点收到DISC_GET_PEERS消息后,回复包含了PeerEndpoint 数组的DISC_PEERS消息 IP: validator_enabled : true discovery_rootnode: rest_enabled: false IP: validator_enabled : true discovery_rootnode: discovery_period: 5s rest_enabled: false 第二个节点 验证节点 第一个节点 验证节点 根节点 * 业务网络动态组建示例:第三个节点 第三个节点向根节点发送消息DISC_HELLO,含有自己区块链的高度blockNumber和PeerEndpoint。 如果根节点应答的DISC_HELLO消息中的区块链高度高于第三个节点当前持有的,第三个节点立刻发起synchronization protocol以同步账本的必威体育精装版状态,虽然不执行交易,但是非验证节点维护一个必威体育精装版的账本副本 此后第三个节点每60秒钟向所有的已知节点(第一、二个节点)发送DISC_GET_PEERS消息获得加入网络的其它节点(考虑到发送间隔,第二个节点应该先于第三个节点发现对方) 第一、二个节点收到DISC_GET_PEERS消息后,回复包含了PeerEndpoint 数组的DISC_PEERS消息 IP: validator_enabled : true discovery_rootnode: rest_enabled: false IP: validator_enabled : false discovery_rootnode: discovery_period: 60s rest_enabled: true 第二个节点 验证节点 第一个节点 验证节点 IP: validator_enabled : true discovery_rootnode: discovery_period: 5s rest_enabled: false 第三个节点 非验证节点 * 区块(Block)结构 message Block { version = 1; tobuf.Timestamp timestamp = 2; bytes transactionsHash = 3; bytes stateHash = 4; bytes previousBlockHash = 5; bytes consensusMetadata = 6; NonHashData nonHashData = 7; } message BlockTransactions { repeated Transaction transactions = 1; } message NonHashData { tobuf.Timestamp localLedgerCommitTimestamp = 1; repeated TransactionResult transactionResults = 2; } message TransactionResult { string uuid = 1; // 交易 ID bytes result = 2; // 交易执行结果 uint32 errorCode = 3; // 错误码 string error = 4; // 错误说明 } * PBFT原理介绍: 核心算法 (也叫做3-phase commit) client把一个request广播到所有的replica, 确保primary收到请求 PRE-PREPAREPrimary为这个request分配一个顺序号并广播到其他replica;那些replica检查消息的有效性,同意那个顺序号且确认了message和view;如果replica有了m和有效的pre-pare, 就进行下一步 PREPARE每个replica发送一个PREPARE消息给其他的replica,所有收到2f个prepare的replica进入commit COMMIT每个replica广播commit消息,一个replica收到2f个comm
文档评论(0)