区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

Posted by

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

本文作者:HiBlock区块链技术布道群-辉哥

原文发布于币乎

原文链接:

https://bihu.com/article/974697

加微信baobaotalk_com,加入技术布道群

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

1

摘要

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

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

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

2

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

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

3

发布长文章实操

作为技术工作者,我们回到技术实现上来吧。这个命题就转化为“如何把长文章记录到以太坊区块链上”了。辉哥提供一种可实现的方法,针对不愿意编程,对区块链又有一定了解的人能够记录不想被抹去的重要时刻和内容。

作为举例,辉哥找了一篇正能量的文章《李克强:疫苗质量安全是不可触碰的“红线”》(http://politics.people.com.cn/n1/2016/0414/c1024-28277470.html),给大家演示如何把长文章记录到以太坊区块链上。

3.1 URL编码

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

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

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

然后在“URL编码2.txt”查找对应的关键字例如http,找到后切换到16进制转换工具(https://www.sojson.com/hexadecimal.html),然后复制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”。

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

3.3 删除全文的%

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

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

3.4 交易并记录文章

3.4.1 导入账号

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

3.4.2 点击交易

复制“URL编码-16进制编码-去除百分2.txt”,点击”SEND”按钮,在弹出的界面 DATA部分拷贝后,在其头部增加“0x”标识。

转账数额可以填写很小,例如0.0001个ETH,转账的账号选择自己的地址吧。

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

3.4.3 设置GAS Limit和GAS Price

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

【说明】

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美元。

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

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

3.4.4 查看文章内容

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

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

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”获取。

— 线上课程推荐—

【线上课程】4节课8小时培训,《白话区块链》作者蒋勇教你快速掌握区块链智能合约开发

区块链100讲:不用编程,如何把长文章记录到以太坊区块链上?

— 线下活动推荐—

技术工坊|(分享+实践)1天学会区块链Dapp+代币开发(西安)

技术沙龙|利用防篡改可追溯特性,探寻区块链在政府及实体企业的应用方向(成都)

始发于微信公众号: 区块链社区HiBlock