使用Python编写Tendermint应用程序
来自星星G
发表于 2022-12-25 03:19:05
77
0
0
使用Tendermint的状态机,我们从“创世状态”开始。这类似于在网络上发生任何事务之前的空白状态。执行事务时,此创世状态转换为某种最终状态。在任何时间点,这个最终状态代表了Tendermint的当前状态。
" ~4 e7 @( V% {; ?% T, G
开发人员应该定义容忍故障的初始状态和该状态下的允许转换集,系统确保每个副本以相同的状态开始,并且每个副本以相同的顺序进行相同的状态转换,这是状态机复制。4 e$ H, n& V: u, |% s" a7 u" G
或者我们可以称之为区块链。现在让我们深入了解事情的细节。
使用tendermint编写应用程序
Tendermint可以复制用任何编程语言编写的确定性状态机。" P3 E" J$ R. s( V4 M
3 e- k- S: y7 f' L
安装tendermint
让我们首先运行一个预先构建的应用程序,然后了解如何使它成为我们的程序。我们将使用名为kvstore的应用程序。这是一个简单的应用程序,它将采用“密钥”和“值”并存储它。因此,稍后您可以在搜索“密钥”时获取该值,这是一个非常简单的数据库应用。3 T' |' l& k" @/ T/ O4 \
# i F$ {) \, k3 J
运行预建的kvstore
Tendermint团队已经在应用程序中构建了kvstore示例。; D L& v2 T* X* H: t" I
最好按照我们的方式输入这些内容,这就是我没有输入输出的原因。- q( r3 o3 j! m- Y& L Q
让我们使用命令’tendermint node’来分解我们启动应用程序的过程。 tendermint应用程序在本地计算机上的端口26657上运行。 转到该端口以查看应用程序是否顺利运行。$ s& ^' i& M& E0 V1 G' b7 X
KVStore使用abci-cli
为什么我们使用不同的方式执行相同的任务,您没有总是键入curl命令。 Tendermint有一个名为abci-console的工具,它允许您轻松地向Tendermint应用程序发送请求。; j2 {) h% K& k# M" c
ABCI是应用程序区块链接口的简称,它将应用程序与区块链连接起来。
abci-console允许大家轻松发送交易。 现在让我们看看在abci-console中使用的方法将事务发送到Tendermint。
8 }) _6 l: g: L) g* r5 X
我们使用deliver_tx发送事务,这是在我们的机器中更新状态的部分。 我们提交了该事务来存储事务,状态增加链存储块高度的地方。 之后我们从Tendermint节点查询它,基本上查找给定键值的状态。, \/ x5 v( E0 o' ~7 G
! a1 ?& y# _/ ?: A& [' e6 c
让我们总结一下。: Q y& X7 a4 m" A4 z$ h
您交付交易,然后提交交易,然后您可以查询交易。) }- K. I& R$ o, F5 K, l
现在,让我们看看如何根据需要制作KV Store应用程序。- |# X. Z2 P$ Y+ D6 d8 ?
如果你注意到我使用了home标志,那就是确保genesis标记位于名为node的文件夹中。
具体实现代码请到公众号:区块链研究实验室获取
成为第一个吐槽的人