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

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

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月份啊,我还以为是今天说的呢! 哎。。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OAuth2介绍与使用

    OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据...

    辉哥
  • 【读书笔记】廖雪峰:Git教程

    本文是辉哥学习廖雪峰的《Git教程》的读书笔记,把其中一些精要的命令记录了下来。这个笔记主要给辉哥自己做备忘索引,对一般人来说很难有明了的价值。建议直接点击学习...

    辉哥
  • 【深度知识】以太坊数据序列化RLP编码/解码原理

    RLP(Recursive Length Prefix),中文翻译过来叫递归长度前缀编码,它是以太坊序列化所采用的编码方式。RLP主要用于以太坊中数据的网络传输...

    辉哥
  • Linux NTP时间服务器

    NTP 时间服务器 ntp也是一种协议 ntp软件(支持ntp协议)  CentOS6自带 CentOS7需要安装 chrony软件(支持ntp协议)   Ce...

    863987322
  • 从SAP最佳业务实践看企业管理(163)-复式记账法

    在十四世纪末的地中海,那些阳光和煦的冬日里,威尼斯的港口大概是最繁忙的地方。商船满载着将要运往东方,或者刚从东方运来的货物在码头穿梭,珠光宝气的商人们一面监视着...

    SAP最佳业务实践
  • 绕过客户端验证进行安全测试

    学习打卡计划是信安之路知识星球开启的 “每天读书一小时,挑战打卡一百天” 主题活动,能够坚持学习打卡 100 天的同学可以获得信安之路提供的百分成就徽章和证书,...

    信安之路
  • [007] 这份关于Python可视化的秘笈请收好!

    “作者总结了用Python进行EDA可视化的常用demo,同时也有一个案例带着我们走了一遍,代码可以复用,涉及了常见的图表,包括折线图、条形图、柱状图、堆积图、...

    Sam Gor
  • 谷歌发布电影动作数据集AVA,57600精准标注视频教AI识别人类行为

    【新智元导读】教机器理解视频中的人的行为是计算机视觉中的一个基本研究问题,谷歌最新发布一个电影片段数据集AVA,旨在教机器理解人的活动。 该数据集以人类为中心进...

    新智元
  • WCF入门学习(1,2)

    辞职之后当然是玩。玩了若干天的游戏,真的是没日没夜啊,但是玩的太坑,怒删游戏。话说上次玩还是在14年7月份。下次还是过年回家再和小伙伴一起玩。想到过年也就7天的...

    _淡定_
  • Netty 系列一(核心组件和实例).

        早期的 Java API 只支持由本地系统套接字库提供所谓的阻塞函数来支持网络编程。由于是阻塞 I/O ,要管理多个并发客户端,需要为每个新的客户端So...

    JMCui

扫码关注云+社区

领取腾讯云代金券