首页 > 其他分享 >GO语言凭什么是区块链的首选语言

GO语言凭什么是区块链的首选语言

时间:2022-12-14 12:12:24浏览次数:55  
标签:语言 -- abi go GO 区块

GO语言凭什么是区块链的首选语言
区块链的火热也带动了GO语言开发者的突增,那凭什么GO语言会成为最主要的区块链构建语言之一。我认为这得益于GO语言的性能、抽象度、简单性和现代性。并且,当下最成功、最流行的go-ethereum和Fabric都是使用GO语言实现的,在这两个的带领下,为了减少开发时间和成本,GO语言也成为开发区块链的优选。

对加密函数的支持
GO语言之所以被称之为区块链编程第一语言,主要是因为其对加密函数的支持性高,为开发者直接提供了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字节的值。

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语言的开发效率和性能效率都是非常快的,集各种优点于一身,区块链正需要这种高效性。

分布式系统的宠儿
Docker,作为一种微服务的容器,也是用Golang开发出来的,是当下非常火热的微服务框架。

结语
go语言的优点还有很多,就不多赘述了。

标签:语言,--,abi,go,GO,区块
From: https://www.cnblogs.com/python9090/p/16981689.html

相关文章

  • Go语言超全详解(入门级)
    Go语言超全详解(入门级)1.Go语言的出现在具体学习go语言的基础语法之前,我们来了解一下go语言出现的时机及其特点。Go语言最初由Google公司的RobertGriesemer、KenTho......
  • 跟我一起搞区块链吧!
    Web3.0与区块链不管你是从事任何职业,最近身边是不是总有人对你说:"诶你知道吗,现在web3.0可火了!“web3.0?当你第一次听到这个词是否会感到云里雾里呢?其实它指的就是第三代互联......
  • Windows 平台下 Go 语言的安装和环境变量设置
    1.Go语言SDK安装包下载和安装最新稳定版1.5.3安装包go1.5.3.windows-amd64.msi下载地址https://golang.org/dl/,大小约69MB(作者上传了一份该版本安装包到CSDN......
  • Go适合做什么?为何这么多人偏爱Go语言?
    Go作为Google2009年推出的语言,其被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go语言无疑比大多......
  • Go语言十大主流微服务框架
    1.Istio(31.7K)项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要......
  • go - 如何将gin模式设置为release模式?
    参考URL:go-如何将gin模式设置为release模式?-IT工具网(coder.work) 我需要将gin模式设置为release模式。我应该怎么做?现在,当我运行我的API时,会出现如下提示......
  • Go语言使用场景 | go语言与其它开源语言比较 | Go WEB框架选型
    一、Go语言使用场景1.关于go语言2007年,受够了C++煎熬的Google首席软件工程师RobPike纠集RobertGriesemer和KenThompson两位牛人,决定创造一种新语言来取代C++,这就是Go......
  • GO语言基础 为什么我要学习Golang以及GO语言入门普及
    作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进......
  • go语言操作xlsx文件
    简言1.go语言操作xlsx文件已经有了很完善的第三方库,本篇博客演示的是 360EntSecGroup-Skylar/excelize的使用2.演示功能:读取xlsx文件,新建,写入,保存xlsx文件完整代码及文......
  • golang递归获取目录下的所有文件
    简言1.golang为我们提供了完善的文件操作库,例如os,ioutil等2.前人已经写了文件操作的示例,具体可参考这篇博客 ​​https://colobu.com/2016/10/12/go-file-operations/#mo......