没有合适的资源?快使用搜索试试~ 我知道了~
首页基于tendermint构建自己的区块链
资源详情
资源评论
资源推荐
构建基于 tendermind 区块链应用(概念部分)
前言:
本文参考了众多的技术文档和博客,包括不限于下面。
《》
《 !》
《!" # 》
相关代码请参考如下链接:(其中 ! 太大无法上传,后面补
上)
!$!$
!$!$
、比特币称为第一代区块链,特点是把通讯、共识、存储、业务逻辑耦合一
起
、以太坊称为第二代区块链,特点是屏蔽了底层的共识、通讯,可以用高级
语
言直接开发区块链应用。
、%&'(&' 称为第三代区块链,特点是可以在链与链直接交互,而这款神器
正是基于 )!构建的,)!是一个共识引擎,可以为
其他任何区块链平台提供 共识插件。
一、本文面向的读者:
、具有区块链的初步知识(了解点对点通讯、共识机制、分布式存储、加密
概念)。
、具有一点点 语言的基本知识。
、懂得 %&' 操作系统的基本命令。
、了解 版本控制工具的常用命令。
二、 Tendermint 是什么
Tendermint(以下简称 TM),先来了解一下 )(的原理,)(主要包含两
部分:(稍微啰嗦一下 )! 是一家公司,同时也是该公司区块链底层
技术产品的名称 )
、)!%:区块链共识引擎。它负责两件事情:节点之间的数据同步有序传
输
拜占庭共识机制的实现。(分布式事务管理引擎)
、*+%,:区块链应用接口,它被设计成一组有接口规范的协议,目的是可以使用多种语
言
实现区块链应用逻辑(支持 %--./*0*.1&2*31包括 % 语言 )。
、)!的这个架构设计,实际上把区块链的底层技术进行了解耦,)!
%(“共识引擎”)通过一个满足 *+%,标准的 4协议与应用进行交流,
、举个大家比较熟悉的例子,比特币,比特币是一个加密货币区块链,其中的每个节点
维护了一个完全经过审计的 5)6&数据库。如果有人想要在 *+%,之上创建一个类似比特
币的系统
Tendermint Core 将会负责:
、在节点间共享区块和交易
、建立交易(区块链)的标准不可变顺序
而构建在 ABCI 上的应用将会负责:
、维护 5)6&数据库
、验证交易的加密签名
、阻止花费尚未存在的交易
、允许客户端查询 5)6&数据库
)!能够通过在应用过程和共识过程之间,提供一个非常简单的 *7,(也就是
*+%,)来分解区块链设计,下面这个图是官方文档里面,用来帮助理解 )! 的消
息交互过程。
三、Tendermin 官方文档专有名词理解
看到下面这堆似是而非的东西,是不是有点蒙圈,别着急,本人开始接触这
些概念也是一样, 不过确实有点烧脑啊。
、*+%,'8:
、*+%,%
、)!%
、*+%,*
"、*+%,*
我们来这样理解吧,一个基于 )! 的区块链应用,至少包括 )!这个底
层工具,和我们自己构建的区块链应用,那么。。。。
Client :区块链外部,真正的客户端,通过 )!提供的服务对区块
链
进行读写访问(对于上面就是 ABCI App)
Tendermit :区块链内部,(ABCI Client/Tendermint Core),启动后
与 *+%,提供的 '4服务创建 条连接(%),同时会提供 9))7
服务给区块链外部客户端,服务地址: ##"
ABCI:区块链内部,ABCI Server,启动后加载 ABCI
Application/App,为 )!提供 '4服务,服务地址:
##":
;http://localhost:46657<;tcp://localhost:46658<
区块链外部应用(app)===================>Tendermint Core=================>ABCI
;ABCI Client<;ABCI Server<
四、Tendermint 工作原理及流程
还是举例说明,便于理解:
假设吉友哥在使用我写的的区块链记账 *77(用 &' 开发的):
%就是区块链记账 *77,强东哥记录了一条新数据 ‘/47$?@,然
后保存
%会发起请求 ##"!!A
BC/47$?C
)!收到 BC/47$?C,通过 '4向 *+%,发出指令
%4)C/47$?C
*+%,运行了我写的 *+%,*(用 1& 开发的)里的 %4)方法,作用是
验证 C/47$?C是否符合数据规范,如果不符合就要通知
)!!拒绝这条
" 假设 *+%,%4)验证通过后通知 )!
# )!把 C/47$?C暂存在内存池(!!)里,并把这条
通过 77网络复制给其它 )!节点(杰克马、坡尼马和雷布斯各
自运行的 )!节点)
)!发起了对 C/47$?C这条 的拜占庭共识投票,所有
个 )!节点都参与了。投票过程分三轮,第一轮预投票
(70),超过 认可后进入第二轮预提交(7%!!),超过
认可后进入最后一轮正式提交(%!!)
: )!提交(%!!)时依次向 *+%,发送指令:++4=>
D8)E 次 =>F+4=>%!!,大致意思就是:开始接受新区
快 =>正在接受区块内容 E 条 =>区块内容接受完了 =>提交到区块链去吧
*+%,提交(%!!)成功后会通知 )!
至此,区块链多了一个区块记录了 条 C/47$?C
,当然我们也可以记录 条后再保存,那么一个区块就会记录 条
最后再总结几点:
abci-cli dummy
abci-cli console
说回刚才那个坑人的 =,当他运行 G=!!$G时其实是运行了
*+%,,当他运行了 G=G时其实是运行了 )!,所以一
起运行后会进行 '4连接(%)
剩余21页未读,继续阅读
泡八喝九美十
- 粉丝: 4
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3