两年半前的大坑:区块链的写操作


2017年11月16日,我发布了一篇文章STEEM 签名学习笔记 (一)/ 读操作与写操作,在这篇文章中,我把STEEM区块链的操作分为两大类:读和写。


(图源 :pixabay)

并根据我的理解,给出如下定义:

  • 读操作:从区块链获取信息
  • 写操作:对区块链进行操作,将信息写入到区块链

同时在文章中,我给出读写的示例,然而读操作还好,其实就是调用API获取信息即可,写操作这块我是取巧的操作,使用steem-python来生成对应的transaction并签名,然后使用broadcast API广播。

但是其实对于transaction是如何签名的,我一定也不了解,反正steem-python满足大部分需求,我也懒得去学了,当然怕自己学不明白也是一方面。

Hive分叉后,steem-python等库都有一些故障,尽管各路大牛很快修复了故障,让其好用,但是让我意识到,如果不了解底层的工作原理,那么出问题的时候就会抓狂,要么做一些是是而非的修改,要么就只能被动等待了。

于是这阶段每天都耗费一些时间去学习签名相关的内容,总算有了一些眉目。对于区块链的写操作,了解的更为具体了。

那么到底如何对STEEM/HIVE区块链进行写操作呢?我对其总结如下:

  • 设置我们要进行的操作(operations)
  • 将操作放到事务中(transaction)
  • *设置事务的TaPos信息(refblock)
  • 设置事务的超时时间(expiration)
  • 序列化事务(serialize)
  • 用chain_id和序列化后的事务来生成摘要(digest)
  • 对摘要进行签名(sign)并附加到事务中
  • 广播事务(broadcast)

弄清了写操作,并弄清其中每个细节之后,我们就可以做任意操作了,比如说投票操作。

依据之前学习的成功,我没用steem-python、beem等库,也成功地生成了签名后的transaction:

image.png

并将上述transaction成功地广播到Hive区块链上:

image.png

两年半过去了,总算填上了写操作这个大坑。

相关链接


Comments 2


o叔,我发个回复试一下哈,你不用理我

21.04.2020 09:05
0