真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

以太坊源碼go語言 以太坊編程

一學(xué)就會,手把手教你用Go語言調(diào)用智能合約

智能合約調(diào)用是實(shí)現(xiàn)一個 DApp 的關(guān)鍵,一個完整的 DApp 包括前端、后端、智能合約及區(qū)塊 鏈系統(tǒng),智能合約的調(diào)用是連接區(qū)塊鏈與前后端的關(guān)鍵。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站設(shè)計(jì)、雙鴨山網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、雙鴨山網(wǎng)絡(luò)營銷、雙鴨山企業(yè)策劃、雙鴨山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供雙鴨山建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

我們先來了解一下智能合約調(diào)用的基礎(chǔ)原理。智能合約運(yùn)行在以太坊節(jié)點(diǎn)的 EVM 中。因此要 想調(diào)用合約必須要訪問某個節(jié)點(diǎn)。

以后端程序?yàn)槔蠖朔?wù)若想連接節(jié)點(diǎn)有兩種可能,一種是雙 方在同一主機(jī),此時后端連接節(jié)點(diǎn)可以采用 本地 IPC(Inter-Process Communication,進(jìn) 程間通信)機(jī)制,也可以采用 RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)機(jī)制;另 一種情況是雙方不在同一臺主機(jī),此時只能采用 RPC 機(jī)制進(jìn)行通信。

提到 RPC, 讀者應(yīng)該對 Geth 啟動參數(shù)有點(diǎn)印象,Geth 啟動時可以選擇開啟 RPC 服務(wù),對應(yīng)的 默認(rèn)服務(wù)端口是 8545。。

接著,我們來了解一下智能合約運(yùn)行的過程。

智能合約的運(yùn)行過程是后端服務(wù)連接某節(jié)點(diǎn),將 智能合約的調(diào)用(交易)發(fā)送給節(jié)點(diǎn),節(jié)點(diǎn)在驗(yàn)證了交易的合法性后進(jìn)行全網(wǎng)廣播,被礦工打包到 區(qū)塊中代表此交易得到確認(rèn),至此交易才算完成。

就像數(shù)據(jù)庫一樣,每個區(qū)塊鏈平臺都會提供主流 開發(fā)語言的 SDK(Software Development Kit,軟件開發(fā)工具包),由于 Geth 本身就是用 Go 語言 編寫的,因此若想使用 Go 語言連接節(jié)點(diǎn)、發(fā)交易,直接在工程內(nèi)導(dǎo)入 go-ethereum(Geth 源碼) 包就可以了,剩下的問題就是流程和 API 的事情了。

總結(jié)一下,智能合約被調(diào)用的兩個關(guān)鍵點(diǎn)是節(jié)點(diǎn)和 SDK。

由于 IPC 要求后端與節(jié)點(diǎn)必須在同一主機(jī),所以很多時候開發(fā)者都會采用 RPC 模式。除了 RPC,以太坊也為開發(fā)者提供了 json- rpc 接口,本文就不展開討論了。

接下來介紹如何使用 Go 語言,借助 go-ethereum 源碼庫來實(shí)現(xiàn)智能合約的調(diào)用。這是有固定 步驟的,我們先來說一下總體步驟,以下面的合約為例。

步驟 01:編譯合約,獲取合約 ABI(Application Binary Interface,應(yīng)用二進(jìn)制接口)。 單擊【ABI】按鈕拷貝合約 ABI 信息,將其粘貼到文件 calldemo.abi 中(可使用 Go 語言IDE 創(chuàng)建該文件,文件名可自定義,后綴最好使用 abi)。

最好能將 calldemo.abi 單獨(dú)保存在一個目錄下,輸入“l(fā)s”命令只能看到 calldemo.abi 文件,參 考效果如下:

步驟 02:獲得合約地址。注意要將合約部署到 Geth 節(jié)點(diǎn)。因此 Environment 選擇為 Web3 Provider。

在【Environment】選項(xiàng)框中選擇“Web3 Provider”,然后單擊【Deploy】按鈕。

部署后,獲得合約地址為:0xa09209c28AEf59a4653b905792a9a910E78E7407。

步驟 03:利用 abigen 工具(Geth 工具包內(nèi)的可執(zhí)行程序)編譯智能合約為 Go 代碼。abigen 工具的作用是將 abi 文件轉(zhuǎn)換為 Go 代碼,命令如下:

其中各參數(shù)的含義如下。 (1)abi:是指定傳入的 abi 文件。 (2)type:是指定輸出文件中的基本結(jié)構(gòu)類型。 (3)pkg:指定輸出文件 package 名稱。 (4)out:指定輸出文件名。 執(zhí)行后,將在代碼目錄下看到 funcdemo.go 文件,讀者可以打開該文件欣賞一下,注意不要修改它。

步驟 04:創(chuàng)建 main.go,填入如下代碼。 注意代碼中 HexToAddress 函數(shù)內(nèi)要傳入該合約部署后的地址,此地址在步驟 01 中獲得。

步驟 04:設(shè)置 go mod,以便工程自動識別。

前面有所提及,若要使用 Go 語言調(diào)用智能合約,需要下載 go-ethereum 工程,可以使用下面 的指令:

該指令會自動將 go-ethereum 下載到“$GOPATH/src/github點(diǎn)抗 /ethereum/go-ethereum”,這樣還算 不錯。不過,Go 語言自 1.11 版本后,增加了 module 管理工程的模式。只要設(shè)置好了 go mod,下載 依賴工程的事情就不必關(guān)心了。

接下來設(shè)置 module 生效和 GOPROXY,命令如下:

在項(xiàng)目工程內(nèi),執(zhí)行初始化,calldemo 可以自定義名稱。

步驟 05:運(yùn)行代碼。執(zhí)行代碼,將看到下面的效果,以及最終輸出的 2020。

上述輸出信息中,可以看到 Go 語言會自動下載依賴文件,這就是 go mod 的神奇之處??吹?2020,相信讀者也知道運(yùn)行結(jié)果是正確的了。

【深度知識】以太坊數(shù)據(jù)序列化RLP編碼/解碼原理

RLP(Recursive Length Prefix),中文翻譯過來叫遞歸長度前綴編碼,它是以太坊序列化所采用的編碼方式。RLP主要用于以太坊中數(shù)據(jù)的網(wǎng)絡(luò)傳輸和持久化存儲。

對象序列化方法有很多種,常見的像JSON編碼,但是JSON有個明顯的缺點(diǎn):編碼結(jié)果比較大。例如有如下的結(jié)構(gòu):

變量s序列化的結(jié)果是{"name":"icattlecoder","sex":"male"},字符串長度35,實(shí)際有效數(shù)據(jù)是icattlecoder 和male,共計(jì)16個字節(jié),我們可以看到JSON的序列化時引入了太多的冗余信息。假設(shè)以太坊采用JSON來序列化,那么本來50GB的區(qū)塊鏈可能現(xiàn)在就要100GB,當(dāng)然實(shí)際沒這么簡單。

所以,以太坊需要設(shè)計(jì)一種結(jié)果更小的編碼方法。

RLP編碼的定義只處理兩類數(shù)據(jù):一類是字符串(例如字節(jié)數(shù)組),一類是列表。字符串指的是一串二進(jìn)制數(shù)據(jù),列表是一個嵌套遞歸的結(jié)構(gòu),里面可以包含字符串和列表,例如["cat",["puppy","cow"],"horse",[[]],"pig",[""],"sheep"]就是一個復(fù)雜的列表。其他類型的數(shù)據(jù)需要轉(zhuǎn)成以上的兩類,轉(zhuǎn)換的規(guī)則不是RLP編碼定義的,可以根據(jù)自己的規(guī)則轉(zhuǎn)換,例如struct可以轉(zhuǎn)成列表,int可以轉(zhuǎn)成二進(jìn)制(屬于字符串一類),以太坊中整數(shù)都以大端形式存儲。

從RLP編碼的名字可以看出它的特點(diǎn):一個是遞歸,被編碼的數(shù)據(jù)是遞歸的結(jié)構(gòu),編碼算法也是遞歸進(jìn)行處理的;二是長度前綴,也就是RLP編碼都帶有一個前綴,這個前綴是跟被編碼數(shù)據(jù)的長度相關(guān)的,從下面的編碼規(guī)則中可以看出這一點(diǎn)。

對于值在[0, 127]之間的單個字節(jié),其編碼是其本身。

例1:a的編碼是97。

如果byte數(shù)組長度l = 55,編碼的結(jié)果是數(shù)組本身,再加上128+l作為前綴。

例2:空字符串編碼是128,即128 = 128 + 0。

例3:abc編碼結(jié)果是131 97 98 99,其中131=128+len("abc"),97 98 99依次是a b c。

如果數(shù)組長度大于55, 編碼結(jié)果第一個是183加數(shù)組長度的編碼的長度,然后是數(shù)組長度的本身的編碼,最后是byte數(shù)組的編碼。

請把上面的規(guī)則多讀幾篇,特別是數(shù)組長度的編碼的長度。

例4:編碼下面這段字符串:

The length of this sentence is more than 55 bytes, I know it because I pre-designed it

這段字符串共86個字節(jié),而86的編碼只需要一個字節(jié),那就是它自己,因此,編碼的結(jié)果如下:

184 86 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116

其中前三個字節(jié)的計(jì)算方式如下:

184 = 183 + 1,因?yàn)閿?shù)組長度86編碼后僅占用一個字節(jié)。

86即數(shù)組長度86

84是T的編碼

例5:編碼一個重復(fù)1024次"a"的字符串,其結(jié)果為:185 4 0 97 97 97 97 97 97 ...。

1024按 big endian編碼為0 0 4 0,省略掉前面的零,長度為2,因此185 = 183 + 2。

規(guī)則1~3定義了byte數(shù)組的編碼方案,下面介紹列表的編碼規(guī)則。在此之前,我們先定義列表長度是指子列表編碼后的長度之和。

如果列表長度小于55,編碼結(jié)果第一位是192加列表長度的編碼的長度,然后依次連接各子列表的編碼。

注意規(guī)則4本身是遞歸定義的。

例6:["abc", "def"]的編碼結(jié)果是200 131 97 98 99 131 100 101 102。

其中abc的編碼為131 97 98 99,def的編碼為131 100 101 102。兩個子字符串的編碼后總長度是8,因此編碼結(jié)果第一位計(jì)算得出:192 + 8 = 200。

如果列表長度超過55,編碼結(jié)果第一位是247加列表長度的編碼長度,然后是列表長度本身的編碼,最后依次連接各子列表的編碼。

規(guī)則5本身也是遞歸定義的,和規(guī)則3相似。

例7:

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]

的編碼結(jié)果是:

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116

其中前兩個字節(jié)的計(jì)算方式如下:

248 = 247 +1

88 = 86 + 2,在規(guī)則3的示例中,長度為86,而在此例中,由于有兩個子字符串,每個子字符串本身的長度的編碼各占1字節(jié),因此總共占2字節(jié)。

第3個字節(jié)179依據(jù)規(guī)則2得出179 = 128 + 51

第55個字節(jié)163同樣依據(jù)規(guī)則2得出163 = 128 + 35

例8:最后我們再來看個稍復(fù)雜點(diǎn)的例子以加深理解遞歸長度前綴,

["abc",["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]]

編碼結(jié)果是:

248 94 131 97 98 99 248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116

列表第一項(xiàng)字符串a(chǎn)bc根據(jù)規(guī)則2,編碼結(jié)果為131 97 98 99,長度為4。

列表第二項(xiàng)也是一個列表項(xiàng):

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]

根據(jù)規(guī)則5,結(jié)果為

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116

長度為90,因此,整個列表的編碼結(jié)果第二位是90 + 4 = 94, 占用1個字節(jié),第一位247 + 1 = 248

以上5條就是RPL的全部編碼規(guī)則。

各語言在具體實(shí)現(xiàn)RLP編碼時,首先需要將對像映射成byte數(shù)組或列表兩種形式。以go語言編碼struct為例,會將其映射為列表,例如Student這個對象處理成列表["icattlecoder","male"]

如果編碼map類型,可以采用以下列表形式:

[["",""],["",""],["",""]]

解碼時,首先根據(jù)編碼結(jié)果第一個字節(jié)f的大小,執(zhí)行以下的規(guī)則判斷:

1. 如果f∈ [0,128), 那么它是一個字節(jié)本身。

2. 如果f∈[128,184),那么它是一個長度不超過55的byte數(shù)組,數(shù)組的長度為 l=f-128

3. 如果f∈[184,192),那么它是一個長度超過55的數(shù)組,長度本身的編碼長度ll=f-183,然后從第二個字節(jié)開始讀取長度為ll的bytes,按照BigEndian編碼成整數(shù)l,l即為數(shù)組的長度。

4. 如果f∈(192,247],那么它是一個編碼后總長度不超過55的列表,列表長度為l=f-192。遞歸使用規(guī)則1~4進(jìn)行解碼。

5. 如果f∈(247,256],那么它是編碼后長度大于55的列表,其長度本身的編碼長度ll=f-247,然后從第二個字節(jié)讀取長度為ll的bytes,按BigEndian編碼成整數(shù)l,l即為子列表長度。然后遞歸根據(jù)解碼規(guī)則進(jìn)行解碼。

以上解釋了什么叫遞歸長度前綴編碼,這個名字本身很好的解釋了編碼規(guī)則。

(1) 以太坊源碼學(xué)習(xí)—RLP編碼( )

(2)簡單分析RLP編碼原理

( )

用Go來做以太坊開發(fā)④智能合約

在這個章節(jié)中我們會介紹如何用Go來編譯,部署,寫入和讀取智能合約。

與智能合約交互,我們要先生成相應(yīng)智能合約的應(yīng)用二進(jìn)制接口ABI(application binary interface),并把ABI編譯成我們可以在Go應(yīng)用中調(diào)用的格式。

第一步是安裝 Solidity編譯器 ( solc ).

Solc 在Ubuntu上有snapcraft包。

Solc在macOS上有Homebrew的包。

其他的平臺或者從源碼編譯的教程請查閱官方solidity文檔 install guide .

我們還得安裝一個叫 abigen 的工具,來從solidity智能合約生成ABI。

假設(shè)您已經(jīng)在計(jì)算機(jī)上設(shè)置了Go,只需運(yùn)行以下命令即可安裝 abigen 工具。

我們將創(chuàng)建一個簡單的智能合約來測試。 學(xué)習(xí)更復(fù)雜的智能合約,或者智能合約的開發(fā)的內(nèi)容則超出了本書的范圍。 我強(qiáng)烈建議您查看 truffle framework 來學(xué)習(xí)開發(fā)和測試智能合約。

這里只是一個簡單的合約,就是一個鍵/值存儲,只有一個外部方法來設(shè)置任何人的鍵/值對。 我們還在設(shè)置值后添加了要發(fā)出的事件。

雖然這個智能合約很簡單,但它將適用于這個例子。

現(xiàn)在我們可以從一個solidity文件生成ABI。

它會將其寫入名為“Store_sol_Store.abi”的文件中

現(xiàn)在讓我們用 abigen 將ABI轉(zhuǎn)換為我們可以導(dǎo)入的Go文件。 這個新文件將包含我們可以用來與Go應(yīng)用程序中的智能合約進(jìn)行交互的所有可用方法。

為了從Go部署智能合約,我們還需要將solidity智能合約編譯為EVM字節(jié)碼。 EVM字節(jié)碼將在事務(wù)的數(shù)據(jù)字段中發(fā)送。 在Go文件上生成部署方法需要bin文件。

現(xiàn)在我們編譯Go合約文件,其中包括deploy方法,因?yàn)槲覀儼薭in文件。

在接下來的課程中,我們將學(xué)習(xí)如何部署智能合約,然后與之交互。

Commands

Store.sol

solc version used for these examples

如果你還沒看之前的章節(jié),請先學(xué)習(xí) 編譯智能合約的章節(jié) 因?yàn)檫@節(jié)內(nèi)容,需要先了解如何將智能合約編譯為Go文件。

假設(shè)你已經(jīng)導(dǎo)入從 abigen 生成的新創(chuàng)建的Go包文件,并設(shè)置ethclient,加載您的私鑰,下一步是創(chuàng)建一個有配置密匙的交易發(fā)送器(tansactor)。 首先從go-ethereum導(dǎo)入 accounts/abi/bind 包,然后調(diào)用傳入私鑰的 NewKeyedTransactor 。 然后設(shè)置通常的屬性,如nonce,燃?xì)鈨r格,燃?xì)馍暇€限制和ETH值。

如果你還記得上個章節(jié)的內(nèi)容, 我們創(chuàng)建了一個非常簡單的“Store”合約,用于設(shè)置和存儲鍵/值對。 生成的Go合約文件提供了部署方法。 部署方法名稱始終以單詞 Deploy 開頭,后跟合約名稱,在本例中為 Store 。

deploy函數(shù)接受有密匙的事務(wù)處理器,ethclient,以及智能合約構(gòu)造函數(shù)可能接受的任何輸入?yún)?shù)。我們測試的智能合約接受一個版本號的字符串參數(shù)。 此函數(shù)將返回新部署的合約地址,事務(wù)對象,我們可以交互的合約實(shí)例,還有錯誤(如果有)。

就這么簡單:)你可以用事務(wù)哈希來在Etherscan上查詢合約的部署狀態(tài):

Commands

Store.sol

contract_deploy.go

solc version used for these examples

這寫章節(jié)需要了解如何將智能合約的ABI編譯成Go的合約文件。如果你還沒看, 前先讀 上一個章節(jié) 。

一旦使用 abigen 工具將智能合約的ABI編譯為Go包,下一步就是調(diào)用“New”方法,其格式為“Newcontractname style="box-sizing: border-box; font-size: 16px; -ms-text-size-adjust: auto; -webkit-tap-highlight-color: transparent;"”,所以在我們的例子中如果你 回想一下它將是 NewStore 。 此初始化方法接收智能合約的地址,并返回可以開始與之交互的合約實(shí)例。/contractname

Commands

Store.sol

contract_load.go

solc version used for these examples

這寫章節(jié)需要了解如何將智能合約的ABI編譯成Go的合約文件。如果你還沒看, 前先讀 上一個章節(jié) 。

在上個章節(jié)我們學(xué)習(xí)了如何在Go應(yīng)用程序中初始化合約實(shí)例。 現(xiàn)在我們將使用新合約實(shí)例提供的方法來閱讀智能合約。 如果你還記得我們在部署過程中設(shè)置的合約中有一個名為 version 的全局變量。 因?yàn)樗枪_的,這意味著它們將成為我們自動創(chuàng)建的getter函數(shù)。 常量和view函數(shù)也接受 bind.CallOpts 作為第一個參數(shù)。了解可用的具體選項(xiàng)要看相應(yīng)類的 文檔 一般情況下我們可以用 nil 。

Commands

Store.sol

contract_read.go

solc version used for these examples

這寫章節(jié)需要了解如何將智能合約的ABI編譯成Go的合約文件。如果你還沒看, 前先讀 上一個章節(jié) 。

寫入智能合約需要我們用私鑰來對交易事務(wù)進(jìn)行簽名。

我們還需要先查到nonce和燃?xì)鈨r格。

接下來,我們創(chuàng)建一個新的keyed transactor,它接收私鑰。

然后我們需要設(shè)置keyed transactor的標(biāo)準(zhǔn)交易選項(xiàng)。

現(xiàn)在我們加載一個智能合約的實(shí)例。如果你還記得 上個章節(jié) 我們創(chuàng)建一個名為 Store 的合約,并使用 abigen 工具生成一個Go文件。 要初始化它,我們只需調(diào)用合約包的 New 方法,并提供智能合約地址和ethclient,它返回我們可以使用的合約實(shí)例。

我們創(chuàng)建的智能合約有一個名為 SetItem 的外部方法,它接受solidity“bytes32”格式的兩個參數(shù)(key,value)。 這意味著Go合約包要求我們傳遞一個長度為32個字節(jié)的字節(jié)數(shù)組。 調(diào)用 SetItem 方法需要我們傳遞我們之前創(chuàng)建的 auth 對象(keyed transactor)。 在幕后,此方法將使用它的參數(shù)對此函數(shù)調(diào)用進(jìn)行編碼,將其設(shè)置為事務(wù)的 data 屬性,并使用私鑰對其進(jìn)行簽名。 結(jié)果將是一個已簽名的事務(wù)對象。

現(xiàn)在我就可以看到交易已經(jīng)成功被發(fā)送到了以太坊網(wǎng)絡(luò)了:

要驗(yàn)證鍵/值是否已設(shè)置,我們可以讀取智能合約中的值。

搞定!

Commands

Store.sol

contract_write.go

solc version used for these examples

有時您需要讀取已部署的智能合約的字節(jié)碼。 由于所有智能合約字節(jié)碼都存在于區(qū)塊鏈中,因此我們可以輕松獲取它。

首先設(shè)置客戶端和要讀取的字節(jié)碼的智能合約地址。

現(xiàn)在你需要調(diào)用客戶端的 codeAt 方法。 codeAt 方法接受智能合約地址和可選的塊編號,并以字節(jié)格式返回字節(jié)碼。

你也可以在etherscan上查詢16進(jìn)制格式的字節(jié)碼

contract_bytecode.go

首先創(chuàng)建一個ERC20智能合約interface。 這只是與您可以調(diào)用的函數(shù)的函數(shù)定義的契約。

然后將interface智能合約編譯為JSON ABI,并使用 abigen 從ABI創(chuàng)建Go包。

假設(shè)我們已經(jīng)像往常一樣設(shè)置了以太坊客戶端,我們現(xiàn)在可以將新的 token 包導(dǎo)入我們的應(yīng)用程序并實(shí)例化它。這個例子里我們用 Golem 代幣的地址.

我們現(xiàn)在可以調(diào)用任何ERC20的方法。 例如,我們可以查詢用戶的代幣余額。

我們還可以讀ERC20智能合約的公共變量。

我們可以做一些簡單的數(shù)學(xué)運(yùn)算將余額轉(zhuǎn)換為可讀的十進(jìn)制格式。

同樣的信息也可以在etherscan上查詢:

Commands

erc20.sol

contract_read_erc20.go

solc version used for these examples

學(xué)習(xí)區(qū)塊鏈開發(fā)是學(xué)習(xí)go語言、hyper ledger fabric比較好、還是以太坊智能合約比較好或者公鏈開發(fā)?

Fabric區(qū)塊鏈開發(fā)詳解,本課程面向初學(xué)者,內(nèi)容即包含Hyperledger Fabric的身份證書與MSP服務(wù)、權(quán)限策略、通道配置與啟動、鏈碼通信接口等核心概念,也包含F(xiàn)abric網(wǎng)絡(luò)設(shè)計(jì)、鏈碼與應(yīng)用開發(fā)的操作實(shí)踐,是學(xué)習(xí)Fabric區(qū)塊鏈開發(fā)的最佳選擇。

給你個免費(fèi)區(qū)塊鏈博客看看。


網(wǎng)站標(biāo)題:以太坊源碼go語言 以太坊編程
瀏覽地址:http://weahome.cn/article/ddscdig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部