如何更改Hyperledger锯齿供应链API中的共识算法(FishNet示例)?



我正在尝试更改FishNet示例中的共识算法。

/sawtooth-supply-chain-master/fish_client/public/dist/bundle.js文件中,我找到了这个:

consensus":{"type":"bytes","id":5}

有谁知道锯齿中 consenus id 的映射是什么?

默认情况下,它是开发模式。但我想改变共识类型。这可能吗?

在/sawtooth-supply-chain-master/docker/compose/supply-chain-default.yaml 中

入口点: | 砰�� 如果 [ ! -f/etc/sawtooth/keys/validator.priv ];然后 Sawadm Keygen && 锯齿凯基my_key&& Sawset Genesis -k/root/.sawtooth/keys/my_key.priv && sawadm genesis config-genesis.batch FI; 锯齿验证器 -v \ --端点 tcp://validator:8800 \ --绑定组件:TCP://eth0:4004 \ --绑定网络:TCP://eth0:8800 \ --绑定共识:TCP://eth0:5050 ">

开发模式引擎: 图片:Hyperledger/Sawtooth-devmode-engine-rust:1.1 container_name:锯齿开发模式引擎生锈默认 depends_on: - 验证人 入口点:开发模式-引擎-锈 -C tcp://validator:5050

锯齿动态共识概述

Hyperledger Sawtooth支持动态共识模型。正如你提到的,默认的共识引擎是Devmode

其他支持的共识引擎包括:

  • 双联
  • 诗人

共识类型是链上设置。从文档中:

Each consensus type has a consensus engine that communicates 
with the validator through the consensus API. Each node in 
the network must run the same consensus engine.

配置网络

要使用默认Devmode以外的共识类型,您需要更新两个链上设置:

  • sawtooth.consensus.algorithm.name
  • sawtooth.consensus.algorithm.version

这必须通过 sawset proposal create 命令来完成,该命令可以在网络运行时完成,或者作为创世块的一部分包含在批处理中,例如:

sawadm keygen && 
sawtooth keygen my_key && 
sawset genesis -k /root/.sawtooth/keys/my_key.priv && 
sawset proposal create 
-k /root/.sawtooth/keys/my_key.priv 
sawtooth.consensus.algorithm.name= pbft 
sawtooth.consensus.algorithm.version=1.0 
sawtooth.consensus.pbft.members=["VAL1KEY","VAL2KEY",...,"VALnKEY"] 
-o config.batch 
&& sawadm genesis config-genesis.batch config.batch

请注意,config.batch(其中包含我们更新共识模式的建议(需要包含在sawadm genesis中。

我建议查看有关设置锯齿网络的文档以获取更多信息 - 特别是创建创世区块的第4步。

最新更新