以太坊内容上链的方法

关心链圈或者币圈的朋友,或许听过北大yuexi的事件。那我们应该如何将信息发布到区块链上呢?如果做到已经发布,就不可篡改。一经发布就永久流传呢?方法很简单。(之前,我还通过部署合约的方式,真的是太low了)

原理

其实原理很简单:

  • 在以太坊上,任何一笔交易都会记录在区块里面,而每一笔交易都有一个独一无二的交易id。
  • 我们可以在区块链上通过交易 id 查看历史上的任何一笔交易。
  • 每个交易都可以设置一个可选的 transaction data 字段,用来描述交易说明。
  • transaction data 这个字段是不会占用 gas 的,既它不会产生任何费用。

我们就是通过以太坊上的这个 “漏洞“ ,自己给自己转账 0 eth,生成一笔最低成本的交易,将我们要发布的内容填入交易说明,来实现内容上链的。

准备

首先,你得有一个以太币的钱包,Mist 或者 MetaMask 都可以。具体的安装方法自己百度吧。在这篇文章里,我们默认使用MetaMask,安装方法请跳转。

然后,你需要钱包里面生成以太坊的账户,并往里面转入一定数量的以太坊,这个数量不用太多,内容上链,一条内容的成本也就几块钱而已,你通过类似可赢可乐的软件去购买eth。

以太坊内容上链的方法_第1张图片

过程

复制地址

复制你自己的地址,用于自己给自己转账
以太坊内容上链的方法_第2张图片

准备内容

然后,准备你需要上链的内容。内容必须是十六进制的 hex 字符。有很多中方法可以简单得到,如果装有 python 的同学,可以直接打开 python,输入一串 utf-8 的字符,再显示之,就行了。

>>> content = "内容上链的教程,请关注点火三周的博客"
>>> content
'\xe5\x86\x85\xe5\xae\xb9\xe4\xb8\x8a\xe9\x93\xbe\xe7\x9a\x84\xe6\x95\x99\xe7\xa8\x8b\xef\xbc\x8c\xe8\xaf\xb7\xe5\x85\xb3\xe6\xb3\xa8\xe7\x82\xb9\xe7\x81\xab\xe4\xb8\x89\xe5\x91\xa8\xe7\x9a\x84\xe5\x8d\x9a\xe5\xae\xa2'
>>> 

得到以上这串字符之后,在任意编辑器中,把 ‘\x’ 删除,并在开头加上 0x

0xe58685e5aeb9e4b88ae993bee79a84e69599e7a88befbc8ce8afb7e585b3e6b3a8e782b9e781abe4b889e591a8e79a84e58d9ae5aea2

将其保存好。

发起交易

点击 send ,发起一笔交易。

以太坊内容上链的方法_第3张图片

在交易信息里面填好收款方地址是自己,数量为0,内容是我们上面编辑好的 0x 字串

以太坊内容上链的方法_第4张图片

调整一下交易的手续费,Gas的price越高,则在区块中确认的越快。一般来说,你可以查看当前的平均交易的 gasPrice 来确定你自己的交易的 gasPrice。查看地址

以太坊内容上链的方法_第5张图片

然后,耐心的等待。一般,以太坊的出块时间是15秒,如果 gasPrice 设置的比较低,就会出现下图的等待

以太坊内容上链的方法_第6张图片

最终,当交易完成后,你就可以在区块链上查看你的交易了。记住你的交易号,比如我的:
TxHash:0x09aa8760c2c880a3c9326700a2c9b4918eddb856b22c7fa7512ee36789648256。
在区块链浏览器上(https://etherscan.io/),可以看到该交易、交易的花费($0.17),以及最重要的交易的 input data。至此,最简单的内容上链就完成了

以太坊内容上链的方法_第7张图片

你可能感兴趣的:(区块链)