珍惜羽毛 / STEEM区块链忠实的记录你的操作 / 获得共同操作账户的真实操作者

20060624180712967.jpg

STEEM区块链是个大帐本

昨天的帖子 📌 如何避免辛苦创作的帖子丢失,100%解决哦 🎃有描述一种情况,帖子发表后编辑,依旧可以通过程序或者工具找到以前的记录。

其实区块链好好比一个大帐本,每一时刻的所有操作都会被忠实记录,并且无法回头修改之前的操作。颇有种时光一去不复返的感觉。

所以,在STEEMIT上的诸位,一定要爱惜自己的羽毛,你做的一切,都有档可查。一旦你做了什么不好的事情,被列入黑名单,那么再想洗白就比较难了。当然,放弃当前的ID,投胎成为一个崭新的ID,重新开始一段STEEMIT之旅,也未尝不是一个好办法,但是切记不要再做不好的事情啦。

可以通过各种方法查记录

扯了这么一大段,有些扯远了。
额,查文章的历史纪录,上文说过,大家都学会了吗?

查操作记录,或多或少也提及了,方法很简单用steemd.com加ID即可
http://steemd.com/@your_id
把your_id 换成你自己的,或者你要查的人

当然了,还有各种编程的方法查记录
比如说: get_account_history

一种复杂的情况

但是除了这些还有一种更复杂的情况
我在前文: STEEMIT高级操作之:如何多人共同维护一个公共STEEMIT账户(ID) 描述的一种多人共同操作一个公共账户的方法。

并且我已@laodr 为例,将我们几位茶东都设置了@laodr 的使用权限
比如说我用laodr账户和我的私钥登陆就可以操作laodr账户发帖、投票等等

那么问题来了,除了操作者本人清楚或者操作者本人声明外,如何知道是谁在操作这个账户?
假设一种恶劣的(不可能发生的情况): laodr 账户发表了脏话等不当言论,那么是哪个茶东干的?一定要揪出来,打PP。

在之前另一篇文章 通过事务ID(transaction id) 获取事务(transaction) / Database API: get_transaction , 提到了通过事务ID获取事务的可能性。这里我们进一步延展,通过取到的事务判断是谁在操作。

为此我特意创建了个公钥字典pk_dict
其中用户的公钥是key, 用户名是value.

并编写了个简单的函数:

def get_real_operator(steem, block_num, tx_id):

        block = steem.get_block(block_num)
        index = block['transaction_ids'].index(tx_id)
        tx =  block['transactions'][index]

        real_operator = 'Unknown'
        tx_obj = transactions.SignedTransaction(**tx)

        for pk_str in pk_dict.keys():
                pk = PublicKey(pk_str)
                pks = [pk]
                try:
                        tx_obj.verify(pks, "STEEM")
                except:
                        continue

                real_operator = pk_dict[pk_str]
                break

        return real_operator, tx

@laodr 今天的发帖操作为例:
block 为:13174106, transaction_id为:67d64c97dfc631edaa6f264abfa4b04796856b16
套入我上边的程序中,算出的结果如下:

所以,茶东们,你们做的操作我都可以看到哦,千万不要干坏事。
本文只是从技术上分析了取得真实操作者的可行性。 我们的茶东都是好人,不会干坏事的:)

顺便推荐一下今天的老道茶馆,我是今天的店小二哦:


感谢阅读
水平有限,欢迎大家一起讨论,如有谬误,烦请指正

欢迎upvote、resteem以及 following me @oflyhigh 😎
请将我设置成为你的见证人投票代理, 访问 https://steemit.com/~witnesses

H2
H3
H4
3 columns
2 columns
1 column
28 Comments