将多个操作(operation)放入一个事务中(transaction)

将多个操作(operation)放入一个事务中(transaction)

操作、事务、区块 以及区块链

先来简单介绍一下操作、事务以及区块

  • 操作(operation): 你在steemit上的每一项活动,发帖、回复、点赞、转账等都是操作
  • 事务(transaction): 事务中包含一个或者几个操作(可能是不同人不同种类操作)
  • 区块(block): 每个区块中可能包含一组(0组)或者N组事务
  • 区块链(blockchain): 一系列不断增加(3秒每个)的区块,就构成了STEEM区块链。

亦即:
区块链由区块组成、区块中包含事务,事务中包含操作,操作是我们在STEEM上活动的基本单位。

STEEMIT 一个事务中两个操作的例子


Image source

以发帖为例,我们发表帖子,可以选择发帖的同时投票,也可以选择不投票。

如果勾选了箭头所示的单选框,就会在发帖的同时给帖子投票。

发帖、投票是两个独立的操作,
发帖的同时给帖子投票就是把两个操作放到一个事务中


以我的帖子为例,发帖和投票在一个事务中有相同的transaction_id

如果我们在steemd上打开这个transaction就会看到里边有两项操作,发帖和投票。

Python 库处理发帖并投票的实现

Steemit Python 库也支持发帖的同时投票。
如果设置了对应参数,则在发帖操作以外

额外增加了投票操作

通过这个例子可知,Python库是支持把多个操作放到一个事务中的

将多个操作放到一个事务中的例子

Steem 官方Python 库同时提供了一个将多个操作放到一个事务中的例子
详情可以参考这里:

https://github.com/steemit/steem-python/blob/master/docs/examples.rst

Batching Operations

Most of the time each transaction contains only one operation (for example, an upvote, a transfer or a new post). We can however cram multiple operations in a single transaction, to achieve better efficiency and size reduction.

This script will also teach us how to create and sign transactions ourselves.

代码太长,感兴趣的朋友自己去看吧。

我的测试

我修改了这个例子,并针对我的一个回复进行测试:


(两个操作在一个事务中,相同的transaction_id)


(两个操作在一个事务中,详情)

结论

使用使用官方Python库,将多个操作(operation)放入一个事务中(transaction)是切实可行的


This page is synchronized from the post: 将多个操作(operation)放入一个事务中(transaction)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×