go語言編寫智能合約 go語音編程之旅

區(qū)塊鏈換服務名稱怎么換

怎么設置區(qū)塊鏈的名字,分2步驟,第一是打開瀏覽器輸入區(qū)塊鏈網,第二是再輸入你需要設置的名字。

10余年的長洲網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整長洲建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“長洲網站設計”,“長洲網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

鏈代碼(Chaincode)又稱為智能合約,是用Go語言編寫的程序,主要用于操作賬本上的數據。鏈代碼是運行在區(qū)塊鏈上的、特定條件下自動執(zhí)行的代碼邏輯,是用戶利用區(qū)塊鏈實現(xiàn)業(yè)務邏輯的重要途徑。基于區(qū)塊鏈特點,智能合約的運行結果是可信的,其結果是無法被偽造和篡改的。在使用區(qū)塊鏈服務時,用戶需要開發(fā)自己的鏈代碼和應用程序。用戶的應用程序通過區(qū)塊

區(qū)塊鏈服務狀態(tài)為“彈性IP異?!薄E挪轫棧簭椥怨WIP已“解綁”或被釋放。在BCS控制臺,服務管理頁面中的目標服務卡片中,單擊“更多 更新訪問地址”查看彈性公網IP。登錄網絡控制臺,查找目標彈性公網IP并查看其狀態(tài)。若彈性公網IP已“解綁”:登錄網絡控制臺,在目標彈性公網IP的操作列單擊“綁定”,完成后刷新BCS控制臺的服務管理頁面。

level1編程項目是什么

開發(fā)框架。level1編程項目這是一個基于go語言編寫的,自動化測試以太坊智能合約的開發(fā)框架,使用此框架,可以自動化的部署合約,自動測試合約內的功能函數。

一學就會,手把手教你用Go語言調用智能合約

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

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

以后端程序為例,后端服務若想連接節(jié)點有兩種可能,一種是雙 方在同一主機,此時后端連接節(jié)點可以采用 本地 IPC(Inter-Process Communication,進 程間通信)機制,也可以采用 RPC(Remote Procedure Call,遠程過程調用)機制;另 一種情況是雙方不在同一臺主機,此時只能采用 RPC 機制進行通信。

提到 RPC, 讀者應該對 Geth 啟動參數有點印象,Geth 啟動時可以選擇開啟 RPC 服務,對應的 默認服務端口是 8545。。

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

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

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

總結一下,智能合約被調用的兩個關鍵點是節(jié)點和 SDK。

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

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

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

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

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

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

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

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

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

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

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

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

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

接下來設置 module 生效和 GOPROXY,命令如下:

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

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

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

網頁名稱:go語言編寫智能合約 go語音編程之旅
網頁路徑:http://muchs.cn/article30/doccjpo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站排名品牌網站建設、營銷型網站建設、商城網站、網站內鏈做網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網站