关于DAPP代币合约项目系统开发技术丨代币合约技术开发方案设计

简介: 关于DAPP代币合约项目系统开发技术丨代币合约技术开发方案设计

core.yaml 设置如下:

peer:
gossip:
useLeaderElection: false # 不进行动态选举主节点
orgLeader: true # 指定该节点为主节点
1
2
3
4
或者配置环境变量:

export CORE_PEER_GOSSIP_USELEADERELECTION=false
export CORE_PEER_GOSSIP_ORGLEADER=true
1
2
前面提到,如果指定某个节点不为主节点也是可以的:

peer:
gossip:
useLeaderElection: false # 不进行动态选举主节点
orgLeader: false # 指定该节点为非主节点
1
2
3
4
或者配置环境变量:

export CORE_PEER_GOSSIP_USELEADERELECTION=false
export CORE_PEER_GOSSIP_ORGLEADER=false
1
2

  1. 动态选举主节点
    动态选举配置信息:

peer:
gossip:

    # Leader election service configuration
    election:
        # Longest time peer waits for stable membership during leader election startup (unit: second)
        startupGracePeriod: 15s
        # Interval gossip membership samples to check its stability (unit: second)
        membershipSampleInterval: 1s
        # Time passes since last declaration message before peer decides to perform leader election (unit: second)
        leaderAliveThreshold: 10s
        # Time between peer sends propose message and declares itself as a leader (sends declaration message) (unit: second)
        leaderElectionDuration: 5s

Gossip 动态选举算法有如下特点:

节点的角色通过比较节点 ID 来确定
每个节点只有两种角色:主节点和从节点,当所有节点的共识一致的时候,就会产生一个主节点
如果网络被划分为多个分区,则每个分区都有一个主节点,当多个分区合并为一个分区的时候,则主节点的数量也应该只留下 1 个
节点之间的通信发送两种消息:
proposal 消息:申请成为主节点
declaration 消息:声明自己为主节点
每个节点都在后台持续运行:

如果主节点不存在,则进入主节点选举过程;
如果节点为主节点,则广播 declaration 消息,声明自己为主节点,如果收到别的节点发送的较低 节点 ID值,则成为从节点;
如果节点为从节点,并且在一定时间内(由 core.yaml 中的 leaderAliveThreshold 设置,默认 10 秒)没有收到其它节点发送的 declaration 消息,则设置主节点不存在。
主节点选举过程:

提交自己为主节点的提案;
收集其它节点发送的提案;
如果有其它节点声明为主节点,则放弃选举过程;
如果主节点不存在,则将自己的节点 ID 与其它节点的 ID 值进行比较,如果自己的 ID 值比其它任何一个节点 ID 值都小,则声明自己成为主节点,否则放弃选举过程。

相关文章
|
8月前
|
安全
一文看懂网络文化经营许可证
一文看懂网络文化经营许可证
562 3
|
芯片 SoC 内存技术
全志H713红外IR遥控配置方法
这篇文章详细介绍了全志H713芯片平台配置红外遥控器的方法,包括获取遥控器规格、NEC协议的配置步骤、其他IR协议配置以及解决头码配置问题的方法。
726 5
全志H713红外IR遥控配置方法
|
项目管理
「软件项目管理」一文了解软件项目团队计划
该文章全面介绍了软件项目团队计划的制定,涵盖人力资源规划、项目组织结构设计、责任分配矩阵(RAM)的应用、干系人管理策略及项目沟通计划的编制等多个方面,帮助项目经理有效地组织和管理项目团队。
|
Kubernetes 网络协议 容器
k8s搭建集群报错汇总—202302【更新】
k8s搭建集群报错汇总—202302【更新】
332 0
|
Ubuntu 定位技术
百度搜索:蓝易云【Ubuntu如何配置软件镜像源?】
现在,你的Ubuntu系统已经配置了新的软件镜像源。你可以使用 `apt`或 `apt-get`命令来安装、更新或卸载软件包,并从所选的镜像源获取软件包。
642 0
|
开发框架 前端开发 JavaScript
利用Spire.Pdf实现PDF添加印章的操作
利用Spire.Pdf实现PDF添加印章的操作
|
数据可视化 算法 数据挖掘
Python主题建模LDA模型、t-SNE 降维聚类、词云可视化文本挖掘新闻组数据集2
Python主题建模LDA模型、t-SNE 降维聚类、词云可视化文本挖掘新闻组数据集
|
机器学习/深度学习 人工智能 算法
如何建立计算机视觉驱动的汽车损伤检测系统-------杂记
如何建立计算机视觉驱动的汽车损伤检测系统-------杂记
317 0
|
Android开发
【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )(二)
【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )(二)
529 0