Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

使用Python编写Tendermint应用程序

来自星星G
83 0 0
在计算机科学中,状态机指的是读取一系列输入的东西,并且基于这些输入,将转换到新状态。0 c. q* R5 c; s/ q! b6 I7 t
使用Tendermint的状态机,我们从“创世状态”开始。这类似于在网络上发生任何事务之前的空白状态。执行事务时,此创世状态转换为某种最终状态。在任何时间点,这个最终状态代表了Tendermint的当前状态。& B* _2 d% c% U# w( g
1 D; x" g9 {2 g/ X( C
开发人员应该定义容忍故障的初始状态和该状态下的允许转换集,系统确保每个副本以相同的状态开始,并且每个副本以相同的顺序进行相同的状态转换,这是状态机复制。2 N8 B  q+ ]9 ^' D9 H5 ~
或者我们可以称之为区块链。现在让我们深入了解事情的细节。
. O, S( e0 X4 ]9 y  @- c使用tendermint编写应用程序2 ?9 K7 o5 H$ z# p! Q4 L( x
Tendermint可以复制用任何编程语言编写的确定性状态机。
0 p$ ]6 J! z0 b0 c% z. Q7 c7 F
5 H! ~2 Z. u4 R/ k& T; l# I; W% W安装tendermint* a1 p' ~( T; g; Z. q9 G7 J: P1 Z3 {# j
让我们首先运行一个预先构建的应用程序,然后了解如何使它成为我们的程序。我们将使用名为kvstore的应用程序。这是一个简单的应用程序,它将采用“密钥”和“值”并存储它。因此,稍后您可以在搜索“密钥”时获取该值,这是一个非常简单的数据库应用。
% J2 c0 O1 x" P4 Z% q' ^) K1 g' `5 I( f' s: q/ ~
运行预建的kvstore
" d, O" j% |0 U0 e7 Y/ dTendermint团队已经在应用程序中构建了kvstore示例。
) @2 [* I. P* p& N1 H) \最好按照我们的方式输入这些内容,这就是我没有输入输出的原因。
% X7 ^+ O0 ]$ I* E
: O* T, y* b  |+ M% h/ u% p+ G9 |$ j让我们使用命令’tendermint node’来分解我们启动应用程序的过程。 tendermint应用程序在本地计算机上的端口26657上运行。 转到该端口以查看应用程序是否顺利运行。
1 m6 x9 Z7 C. W. U$ ]KVStore使用abci-cli$ X( u( e: ?) e' g
为什么我们使用不同的方式执行相同的任务,您没有总是键入curl命令。 Tendermint有一个名为abci-console的工具,它允许您轻松地向Tendermint应用程序发送请求。
7 c" c9 C3 R* r7 E/ wABCI是应用程序区块链接口的简称,它将应用程序与区块链连接起来。/ H# q6 ^; @/ M
abci-console允许大家轻松发送交易。 现在让我们看看在abci-console中使用的方法将事务发送到Tendermint。
" I. r) [/ _; C. `$ I+ N% f( L& B( K
& p7 e, a' T6 k% k1 k4 B. v7 J我们使用deliver_tx发送事务,这是在我们的机器中更新状态的部分。 我们提交了该事务来存储事务,状态增加链存储块高度的地方。 之后我们从Tendermint节点查询它,基本上查找给定键值的状态。
) k4 V2 P% H1 V  K4 l& Z) @' H' u  j
# T, B2 K" D0 q  B让我们总结一下。" ?% v9 ^: M2 Z1 c
您交付交易,然后提交交易,然后您可以查询交易。
0 S. {8 C/ |% [. M3 [& B- u现在,让我们看看如何根据需要制作KV Store应用程序。' |- {  e: n$ w
如果你注意到我使用了home标志,那就是确保genesis标记位于名为node的文件夹中。
- _2 D3 l# Y+ S6 V- p5 ~" p4 D5 E具体实现代码请到公众号:区块链研究实验室获取
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

来自星星G 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8