GO語言憑什么是區(qū)塊鏈的首選語言
區(qū)塊鏈的火熱也帶動了GO語言開發(fā)者的突增,那憑什么GO語言會成為最主要的區(qū)塊鏈構建語言之一。我認為這得益于GO語言的性能、抽象度、簡單性和現代性。并且,當下最成功、最流行的go-ethereum和Fabric都是使用GO語言實現的,在這兩個的帶領下,為了減少開發(fā)時間和成本,GO語言也成為開發(fā)區(qū)塊鏈的優(yōu)選。
對加密函數的支持
GO語言之所以被稱之為區(qū)塊鏈編程第一語言,主要是因為其對加密函數的支持性高,為開發(fā)者直接提供了md5\sha1\sha256\sha512四個官方包,我們直接調用包即可,大大減少了代碼的冗余。代碼舉例: //sha-256 go func Sum256 (data []byte)[32]byte{ var d digest d.Reset() d.Write(data) return d.checkSum() }
//MD5 go func Md5(str string) string { h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) }
對于不同的輸入,SUM256都能返回一個32字節(jié)的值。
geth將solidity與go交互簡單
要使go與solidiy交互只需要以下步驟
- 安裝geth
- 編寫智能合約
- 復制合約abi
- 控制臺輸入命令
- go調用solidity生成.go文件中的函數 代碼實例
編寫智能合約
```solidity // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract Faucet { //每天轉賬次數 uint transferNum=0; //每次轉賬金額 uint eachAmount =1 ether;
function withdraw(address addr) payable public { payable(addr).transfer(eachAmount); transferNum++; }
fallback() payable external {}
receive() payable external {}
} ```
復制abi
如果是使用remix編寫智能合約的話,只需要找到abi按鈕即可復制
控制臺輸入命令
cmd 文件夾為合約保存的文件夾 geth abigen --abi fileName.abi --pkg packageName --type fileName --out fileName.go
GO調用
當生成.go文件后,它就相當于一個接口,我們只需要調用就好了。
速度與效率
Go不是一種解釋型語言——它是編譯型的。這大大地(drastically)減少了在運行中突然出現的Bug。這一點有點像C語言,代碼先被編譯,錯誤會在編譯時出現并得到處理,然后才能運行。 并且GO語言的開發(fā)效率和性能效率都是非??斓?,集各種優(yōu)點于一身,區(qū)塊鏈正需要這種高效性。
分布式系統(tǒng)的寵兒
Docker,作為一種微服務的容器,也是用Golang開發(fā)出來的,是當下非常火熱的微服務框架。
結語
go語言的優(yōu)點還有很多,就不多贅述了。文章來源:http://www.zghlxwxcb.cn/news/detail-791671.html
本文正在參加技術專題18期-聊聊Go語言框架文章來源地址http://www.zghlxwxcb.cn/news/detail-791671.html
到了這里,關于GO語言憑什么是區(qū)塊鏈的首選語言的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!