第十六课 不用编程,如何把长文章记录到以太坊区块链上?

1,摘要

【本文目标】
通过本文学习,以太坊学习者可以把中文长文章记录到区块链上,不会被删除。

【前置条件】
1)有数字钱包,里面有不少于0.02的ETH。
2)本地CHROME浏览器安装有MetaMask钱包插件,没有的参考课程《第一课 如何在WINDOWS环境下搭建以太坊开发环境》完成安装。

【技术收获】
1) 区块链的去中心化,不可篡改的特点证实;
2) 以太坊Gas,Gas Price的理解;

2, 朋友圈不可忘却的刷屏和404

2018年7月22日,当安比台风经过上海时,辉哥整个朋友圈却都在刷屏一个主题的文章,然后点击又是“已停止访问该网页”的提示。直到后来,辉哥看到“被永久记录在以太坊高度6007493之上”的文章提示,对发布者肃然起敬。是的,其实区块链从业者可以做些自己的事情,即使如同这台风不被人重视一样!

3,发布长文章实操

作为技术工作者,我们回到技术实现上来吧。这个命题就转化为“如何把长文章记录到以太坊区块链上”了。辉哥提供一种可实现的方法,针对不愿意编程,对区块链又有一定了解的人能够记录不想被抹去的重要时刻和内容。
作为举例,辉哥找了一篇正能量的文章《李克强:疫苗质量安全是不可触碰的“红线”》,给大家演示如何把长文章记录到以太坊区块链上。

3.1URL编码

首先把该篇文章COPY到WORD文档上,做些文本大小调整的基本动作。
然后打开“在线URL编解码工具”,把相关文本复制上去。点击按钮“URL ENCODE编码”,把产生的编码内容保持到本地文件“URL编码2.txt”。

3.2 ASCII字母和数字转换为16进制

URL编码存在一个问题,就是对应的英文字符和数字不会变为ASCII形式,还是保持原形态,需要识别出来以16进制方式进行转换。参考附件的WORD文档标识,辉哥把不能URL转换的文字都标识了出来。


然后在“URL编码2.txt”查找对应的关键字例如http,找到后切换到16进制转换工具,然后复制16进制替换到“URL编码2.txt”的"http"文本。

需要说明一下的是,针对“4月13日的国务院常务会议上说”的“4”“13”比较好的查找方式是查找其后置字符“月”“日”对应的URL编码“%E6%9C%88”“%E6%97%A5”,然后替换掉对应的“4”“13”为“34”“3133”等16进制码。替换完成后的16进制文件命名为“URL编码-16进制编码2.txt”。

3.3 删除全文的%

在“URL编码-16进制编码2.txt”中,用UltraEdit打开在菜单"搜索/替换",把%替换空的方式删除掉。


把这个文件命名为“URL编码-16进制编码-去除百分2.txt”。

【重大改进】 有朋友发现了一个新的网站工具,能够把3.1,3.2步骤一步完成,这个就更好用了。有需要者可点击链接跳转

3.4 交易并记录文章

3.4.1 导入账号

打开本地CHROME浏览器之前安装的MetaMask插件,导入有至少有0.02ETH的账号,切换到以太坊主网模式。

3.4.2 点击交易

复制“URL编码-16进制编码-去除百分2.txt”,点击"SEND"按钮,在弹出的界面 DATA部分拷贝后,在其头部增加“0x”标识。
转账数额可以填写很小,例如0.0001个ETH,转账的账号选择自己的地址吧。

3.4.3 设置GAS Limit和GAS Price

点击"Next"按钮,设置好Gas Limit参数和Gas Price参数,点击“SUMMIT”按钮即可提交交易。


【说明】
Gas Limit 默认为21000,但是DATA区有数据的话,需要增加上限的。针对非零数据,一共有5857个字节,有一个公式如下:
5857*68+21000 =419276
计算可得Gas Limit的最小数据,辉哥实际设置为419276 。
Gas Price设置为20,目前测试下来交易还是比较快的。
下面一条因为辉哥设置的Gas Limit偏小,导致失败。第二次交易成功,对应链接为https://etherscan.io/tx/0x802a072a303a1bb19a20065a262526f2cfda0d1ea16eeb3db6500d9d06f65963,记录在6010338区块位置,消费辉哥约3.93美元。

【说明】测试者如果选择以太坊测试网络,例如“Repsten Test Network”,则不会消耗一分钱。

3.4.4 查看文章内容

点击交易成功的区块链接,设置"View Input As"为UTF-8,就可以看到这篇文章了。是中文的,不是乱码,也记录了这篇文章的原始出处。


4,知识普及

4.1 区块链特征

区块链其中一个特征是信息不可篡改,一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
以太坊目前在全球有几万个节点,篡改或者删除的成本极高极高。

4.2 以太坊交易的Gas和gasPrice的概念

可理解成汽油, 在以太坊上执行程序以及保存数据都要消耗一定量的以太币,Gas是以太币转换而成。这个机制用来保证效率。

油费计算
油费 = gasPrice 油价 × gasLimit 用油限制
gasCost = gasPrice * gasLimit(used gas)

注意gasLimit只是一个最大使用值,如果没有使用完全则会退回账户。就像是开车去某个目的地一样,gasPrice就是油价,油箱大小就是gasLimit,油够,到达目的地多余的油会留在油箱里面,也就是转账成功,多余的油费会返回账户。如果少了那就到达不了,意味着转账失败。

货币单位(Ether Units):Gwei / wei / Eth之间的关系

gasPrice单位一般用 Gwei表示,三者之间的转换关系为:

1 eth = 1e9 Gwei = 1e18 wei

【注意】1e9 代表的是10的9次方

智能合约也是一样的,当一个发起者部署运行一段智能合约时,以太坊会收取gas费用,就像汽车行驶需要烧油一样,直到你的智能合约运行完毕,“油箱”中剩余的gas会退还给你,如果你的代码死循环了,耗尽了你“油箱”中的gas,那么以太坊会自动报出异常停止你的智能合约。

需要获取本文举例的阶段性原文件用于测试的,加微信“PE-investor”获取。

5,后记

区块链的知识讲完了。辉哥突然注意到引用正能量的这篇文章《李克强:疫苗质量安全是不可触碰的"红线"》的发布时间竟然是2016年4月份啊,我还以为是今天说的呢!
哎。。。

你可能感兴趣的:(第十六课 不用编程,如何把长文章记录到以太坊区块链上?)