第十六課 不用程式設計,如何把長文章記錄到以太坊區塊鏈上?
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月份啊,我還以為是今天說的呢!
哎。。。
相關文章
- 【區塊鏈】實戰·以太坊智慧合約程式設計引導區塊鏈程式設計
- 區塊鏈之以太坊初探區塊鏈
- 區塊鏈 2.0 :以太坊(九)區塊鏈
- 以太坊及區塊鏈 程式資源整合區塊鏈
- 使用truffle部署以太坊智慧合約到區塊鏈區塊鏈
- 以太坊·將資料寫入到區塊鏈中區塊鏈
- 區塊鏈2.0架構:以太坊區塊鏈的介紹區塊鏈架構
- 區塊鏈2.0以太坊漫談(1)區塊鏈
- 區塊鏈2.0以太坊漫談(2)區塊鏈
- 區塊鏈2.0以太坊漫談(3)區塊鏈
- 區塊鏈2.0以太坊漫談(4)區塊鏈
- 區塊鏈2.0以太坊環境搭建區塊鏈
- 如何招聘面試區塊鏈以太坊開發人才面試區塊鏈
- 區塊鏈安全 - 以太坊短地址攻擊區塊鏈
- 區塊鏈——以太坊、智慧合約簡介區塊鏈
- 區塊鏈安全————以太坊短地址攻擊區塊鏈
- 區塊鏈比較:以太坊 Cosmos Cardano EOS和Hyperledger區塊鏈
- 區塊鏈2.0以太坊智慧合約solidity之helloworld區塊鏈Solid
- 第6章 區塊鏈開發平臺:以太坊區塊鏈
- 以太坊創世區塊與鏈配置載入分析
- 以太坊構建DApps系列教程(一):應用程式規則和區塊鏈設定APP區塊鏈
- 以太坊的程式設計介面程式設計
- 以太坊學習記錄+geth配置+私有鏈搭建
- android和java程式設計師使用web3j進行區塊鏈以太坊開發詳解AndroidJava程式設計師Web區塊鏈
- 以太坊原始碼分析(21)chain_indexer 區塊鏈索引原始碼AIIndex區塊鏈索引
- 區塊鏈2.0以太坊編輯器atom配置詳解區塊鏈
- AWS推出以太坊和超級賬本區塊鏈模板區塊鏈
- 區塊鏈程式設計(二)區塊鏈程式設計
- 如何搭建以太坊私有鏈
- 企業以太坊聯盟計劃在2018年推出區塊鏈標準區塊鏈
- 以太坊 DApp 開發入門,如何搭建一個區塊鏈投票系統。APP區塊鏈
- 區塊鏈記錄_1區塊鏈
- 區塊鏈上程式設計:DApp 開發簡介區塊鏈程式設計APP
- 從CRUD程式設計切換到事件溯源和區塊鏈程式設計程式設計事件區塊鏈
- 區塊鏈分散式賬本Fabric、Corda和以太坊比較區塊鏈分散式
- 區塊鏈2.0以太坊配置solidity編譯器sublime詳解區塊鏈Solid編譯
- 區塊鏈之--2小時構建以太坊智慧合約區塊鏈
- 以太坊DApp開發入門教程——區塊鏈投票系統APP區塊鏈