前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十六课 不用编程,如何把长文章记录到以太坊区块链上?

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

作者头像
辉哥
发布2018-08-10 11:25:05
8830
发布2018-08-10 11:25:05
举报
文章被收录于专栏:区块链入门区块链入门

1,摘要

【本文目标】

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

【前置条件】

1)有数字钱包,里面有不少于0.02的ETH。

2)本地CHROME浏览器安装有MetaMask钱包插件,没有的参考课程《第一课 如何在WINDOWS环境下搭建以太坊开发环境》完成安装。

【技术收获】

1) 区块链的去中心化,不可篡改的特点证实;

2) 以太坊Gas,Gas Price的理解;

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

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

3,发布长文章实操

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

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

3.1URL编码

首先把该篇文章COPY到WORD文档上,做些文本大小调整的基本动作。

然后打开“在线URL编解码工具”(http://yehe.isd.com/column/support-plan/article-edit/%5Bhttp://politics.people.com.cn/n1/2016/0414/c1024-28277470.html%5D(http://politics.people.com.cn/n1/2016/0414/c1024-28277470.html%29),把相关文本复制上去。点击按钮“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月份啊,我还以为是今天说的呢!

哎。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2, 朋友圈不可忘却的刷屏和404
  • 3,发布长文章实操
    • 3.1URL编码
      • 3.2 ASCII字母和数字转换为16进制
        • 3.3 删除全文的%
          • 3.4 交易并记录文章
            • 3.4.1 导入账号
            • 3.4.2 点击交易
            • 3.4.3 设置GAS Limit和GAS Price
            • 3.4.4 查看文章内容
        • 4,知识普及
        • 4.1 区块链特征
        • 4.2 以太坊交易的Gas和gasPrice的概念
        • 5,后记
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档