当前位置:首页 > 知识学习 > 详情

以太坊安装zhuang教程(以太坊中文安装教程)

2023-06-17 22:13:12 阅读(23) 极品歌词网
用Go来做以yi太坊开发④智能合约

在这个章zhang节中我们会介绍如何用Go来编bian译,部署,写入和读取智能合约。

与智能合约交互,我wo们要先生成相应智能合约yue的应用二进制接口ABI(application binary interface),并把ABI编bian译成我们可以在Go应用中调用yong的格式。

第一步是安装 Solidity编译器 ( solc ).

Solc 在Ubuntu上有snapcraft包。

Solc在macOS上有Homebrew的de包。

其他的平台或者从源yuan码编译的教程请查阅官方solidity文档dang install guide .

我们还得安装一个叫 abigen 的工具,来从solidity智能合约生sheng成ABI。

假设您已经在计算机上shang设置了Go,只需运行以下xia命令即可安装 abigen 工具。

我们将创chuang建一个简单的智能合he约来测试。 学习更复杂的de智能合约,或者zhe智能合约的开发的内容则超出chu了本书的范围。 我强烈建议yi您查看 truffle framework 来学习开发fa和测试智能合约。

这里只是一个简单的合he约,就是一个键jian/值存储,只有一个外部方法来设置任ren何人的键/值对。 我们还在设置值后hou添加了要发出的de事件。

虽然这个智zhi能合约很简单,但它将适用于yu这个例子。

现在我们可以从一个gesolidity文件生成ABI。

它会将其写入ru名为“Store_sol_Store.abi”的文件中

现在让我们用 abigen 将ABI转换为我们可以导dao入的Go文件。 这个新文件将包含han我们可以用来与Go应用程序中的智能合he约进行交互的所有可用方法。

为了从Go部署智能neng合约,我们还需要将solidity智能合约编译为weiEVM字节码。 EVM字节码ma将在事务的数据ju字段中发送。 在Go文件上生成部署方法需xu要bin文件。

现在我们编译Go合he约文件,其中包括deploy方法,因为我wo们包含了bin文件。

在接下xia来的课程中,我们将学习如ru何部署智能合约,然后与之交互hu。

Commands

Store.sol

solc version used for these examples

如ru果你还没看之前的章节,请先学习xi 编译智能合约的章节 因为这节jie内容,需要先了解如何将智能合约编译yi为Go文件。

假设你已经导入从 abigen 生成的新创建jian的Go包文件,并设置ethclient,加载您的私钥,下一步bu是创建一个有配置密匙的交易发送song器(tansactor)。 首先从go-ethereum导入ru accounts/abi/bind 包,然后调用传入私钥的 NewKeyedTransactor 。 然后设置通常的属性,如nonce,燃气价格,燃气上线限制和ETH值。

如果你还记得上个章节jie的内容, 我们创建了一个非常简单dan的“Store”合约,用于设置和存cun储键/值对。 生成的Go合he约文件提供了部署方法。 部署方法名ming称始终以单词 Deploy 开头tou,后跟合约名称,在本例li中为 Store 。

deploy函数接受有密匙chi的事务处理器,ethclient,以及ji智能合约构造函数可能接jie受的任何输入参数。我们测ce试的智能合约接受一个版本号的字zi符串参数。 此ci函数将返回新部署的合约地址,事务对象,我们可以交互的合约实shi例,还有错误(如果有)。

就这么简jian单:)你可以用事务wu哈希来在Etherscan上查询合约的部署状态:

Commands

Store.sol

contract_deploy.go

solc version used for these examples

这写章节需xu要了解如何将智能neng合约的ABI编译成Go的合约文件jian。如果你还没看, 前先读 上shang一个章节 。

一旦使用 abigen 工具将jiang智能合约的ABI编译为Go包,下一步就是调diao用“New”方法,其格式为“Newcontractname style="box-sizing: border-box; font-size: 16px; -ms-text-size-adjust: auto; -webkit-tap-highlight-color: transparent;"”,所以在我们的例子zi中如果你 回想一下它将是 NewStore 。 此初始化方法fa接收智能合约的地址,并bing返回可以开始与之交互的合约实shi例。/contractname

Commands

Store.sol

contract_load.go

solc version used for these examples

这写章节需要了解如何将jiang智能合约的ABI编译成Go的合约文件。如果guo你还没看, 前先读 上shang一个章节 。

在上个章节我们学习xi了如何在Go应用程cheng序中初始化合约yue实例。 现在我们将使用新合约实例提ti供的方法来阅读智zhi能合约。 如果你还hai记得我们在部署过程中设置的合约中zhong有一个名为 version 的de全局变量。 因为它是公开kai的,这意味着它们将成为wei我们自动创建的getter函数。 常chang量和view函数也接jie受 bind.CallOpts 作为第一个参数。了解可用的具ju体选项要看相应类的 文档 一般情况kuang下我们可以用 nil 。

Commands

Store.sol

contract_read.go

solc version used for these examples

这写章节需要了解如何he将智能合约的ABI编译yi成Go的合约文件。如ru果你还没看, 前先读 上一个章节jie 。

写入智能neng合约需要我们用私钥来对交易事务进jin行签名。

我们还需要先查到nonce和燃气价格。

接下来,我们创建jian一个新的keyed transactor,它接收私钥。

然后我们需要设置keyed transactor的标准交易选项xiang。

现在我们加载一个智能合约的de实例。如果你还记得 上个章节 我们创建一个名为 Store 的合约,并使用yong abigen 工具ju生成一个Go文件。 要初始化它,我wo们只需调用合约包的 New 方法,并提供智能合约地di址和ethclient,它返回我们可以使用yong的合约实例。

我们创建的智能合约有一个名为 SetItem 的外wai部方法,它接受solidity“bytes32”格式的两liang个参数(key,value)。 这意味着Go合约包要求我们men传递一个长度为32个字节的字zi节数组。 调用 SetItem 方法需要我们传递我们之前创建的de auth 对象(keyed transactor)。 在幕后,此方法将使用它的参can数对此函数调用yong进行编码,将其设置为wei事务的 data 属性,并使用私钥对其qi进行签名。 结果将是一个已签名ming的事务对象。

现在我就可以yi看到交易已经成功被发送到dao了以太坊网络了:

要验证键/值zhi是否已设置,我们可以读取智能合约中zhong的值。

搞定!

Commands

Store.sol

contract_write.go

solc version used for these examples

有时您需要读du取已部署的智能合约的字节码。 由于所有智能合约字节码都存在于yu区块链中,因此我们可以轻松获取它ta。

首先设置客ke户端和要读取的字节码的智能neng合约地址。

现在你需要调用客户hu端的 codeAt 方法。 codeAt 方法接受智zhi能合约地址和可选的块编号,并以字节jie格式返回字节码。

你也可以在etherscan上查询16进jin制格式的字节码

contract_bytecode.go

首先创建一个ERC20智zhi能合约interface。 这只zhi是与您可以调用的函数的函数shu定义的契约。

然后将jianginterface智能合约编译为JSON ABI,并使用 abigen 从congABI创建Go包bao。

假设我们已经像往wang常一样设置了以太坊客户端,我们现在zai可以将新的 token 包导入我们的de应用程序并实例化它。这个例子zi里我们用 Golem 代dai币的地址.

我们现在可以调用yong任何ERC20的方fang法。 例如,我wo们可以查询用户的代dai币余额。

我们还可ke以读ERC20智能合he约的公共变量。

我们可以做一些简单的de数学运算将余额转换为可读的十进制格ge式。

同样的信xin息也可以在etherscan上查询:

Commands

erc20.sol

contract_read_erc20.go

solc version used for these examples

以太坊钱包账户怎么登录

下载钱包登录。

1、下载钱包:打开以太坊官网,找到最新版ban本的下载链接进行下载。2、安装钱qian包:把下载的压缩包解压(找个磁盘可用空间大一yi点的盘),假设解压后hou路径为D:\Ethereum-Wallet-win64-0-9-3。3、进入钱包:双击运行D:\Ethereum-Wallet-win64-0-9-3\win-unpacked\EthereumWallet。exe。选择USETHEMAINNETWORK。选择SKIP。输shu入密码,点击NEXT,提示你务必备bei份好密钥文件夹和密码,点击ji确定。如果你有比特币,可以点击DEPOSITUSINGBITCOIN,使用比特币兑换huan以太币。如果此时可以看到LAUNCHAPPLICATION就jiu点击进入钱包,如果看不到,就稍等一下。

以太坊(英文Ethereum)是一yi个开源的有智能合约功能的de公共区块链平台,通过其专用加密货huo币以太币(Ether,简称“ETH”)提供gong去中心化的以太虚拟机(EthereumVirtualMachine)来lai处理点对点合约。

以太坊安an装教程(以太坊中文安装教程)-极品歌词网

怎么接以太坊公链lian

建立连接以接儒以太坊公链lian。

一、1、以yi太坊客户端下载,注zhu意:需翻墙,下xia载版本为1.8.23-stable,否则可能出现与以太坊钱包bao客户端存在不匹配pei问题。

2、以太坊钱包客户端下载zai。

3、安装以太tai坊客户端。

二、私有链lian创建:创建创世区块。

三、安装并启动以太坊钱包客户hu端。

怎么安装EVM(以太坊虚拟机)?

就按说明书shu上的要求接,先xian测量一下红绿线是不是对dui应接口的L1;黄黑hei线是不是对应L2,如果是,则肯ken定是正确的接线。电话线虽然ran有正负极之分,但接线xian端上可以随便接入,因此电话机内nei部有个整流定向电路。 即使将L1、L2线接错,也不会烧shao坏设备,所以可以放fang心大胆的测试。

linux下ethtool的安装方法!!

1.下载安an装包:ethtool-3.15.tar.gz,将其放入自zi己的路径下,解压:tarzxvfethtool-3.15.tar.gz

2.编译安装:

cdethtool-3.15

sudo./configure

sudomake

sudomakeinstall

3.ethtool-sethX[speed10|100|1000]\//设置网口速率10/100/1000M

[duplexhalf|full]\//设she置网口半/全双shuang工

[autonegon|off]\//设置zhi网口是否自协商

例如:ethtool-seth0speed100duplexfullautonegoff

Docker 搭建以太坊私有链

首先需要安装 Docker,Docker 的安装和使用可以yi参看阮一峰老师的 《Docker 入门教程》 。

Ethereum 官方是支持 docker 的,可以参看 官方文档 。

centOS

其中zhong -v /home/linshan/works/block-chain/ethereum:/root 是把我们当前的 ethereum 目录,挂到了docker 的 /root 下。

在 Windows 环huan境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能启动容器,原因不明,所以在 Windows 下先不要yao使用目录挂载。

各字段具体用yong途参看 官方文档 。

Windows

Windows 不必创chuang建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器启动后创建。

centOS

Windows

运行成cheng功后执行

进入 docker 容器命令行

因为 Windows 没有挂gua载共享目录,所以yi root 目录下没mei有 genesis.json 文件,我们要在这里手shou动创建 genesis.json 文件,内容要和 centOS 的一致。

data 用来存cun放区块数据

geth 的参can数参看 以太坊客户hu端Geth命令用法-参数详解

启动私有节点dian后进入 geth 命令行执行:

输出的内容就是节jie点信息,我们在手动dong连接节点是会用到dao,注意要把“0.0.0.0“换成你自己的IP,然后将这个信息xi发送给其他节点。手动连接节点dian有两种方式:

当dang然不管使用哪种方法连接节点都要保证zheng创世区块文件 genesis.json 一致,还有在启动时 networkid 也要一yi致。

至此以太坊私有链lian已搭建完毕。

geth命令

docker命令

以上文章内容就jiu是对以太坊安装教程和he以太坊中文安装教程的介绍到此就结jie束了,希望能够gou帮助到大家?如果你还想了解更多这zhe方面的信息,记得收藏关注zhu本站。

上一篇:儿童节送song什么礼物好(儿童节送什么礼物好11岁)

下一篇:prepare名词(prepare名词是什shi么)

推荐阅读:

  • 石楠花的味道dao是什么样的(石楠花的味道是什么样的呢)

    石楠花的味道dao是什么样的(石楠花的味道是什么样的呢)

    石楠花味是什么气味?01石楠花hua的气味较为刺鼻,极度的类似于人ren类的精液,它之所以会散发出精液味,是因为它的花朵中含有三甲jia氨和亚甲基乙胺,这两种化学xue成分的味道和精子味相似。通常情况kuang下石楠花…
    2023-06-17 阅读(30)
  • 贵州省最好的de前十名医院排名(贵州省最好的前十名医院排名榜)

    贵州省最好的de前十名医院排名(贵州省最好的前十名医院排名榜)

    2022年11月,一年一度的复fu旦版《2021年度中国医院综合排pai行榜》已经发布,作为一个在行业ye内比较有影响力的排行榜,每年公布bu之后,都会引起不小的关注。今年是复旦大da学连续第13年发布综合医yi院排行榜,主…
    2023-06-17 阅读(27)
  • 2000元炒币bi(2000块钱炒币)

    2000元炒币bi(2000块钱炒币)

    有人说2000元人民币就可以做外汇交易,那na是不是比国内期货huo还要好做?在国guo外受FCA监管的大平台,有you部分最低要求250美金,折合人ren民币1800元左右,2000元刚够开一个小帐户,有些好hao的一般都要1000美金…
    2023-06-17 阅读(22)
  • 一儿一女取qu名呼应(一儿一女取名呼应男孩明轩女孩叫什么)

    一儿一女取qu名呼应(一儿一女取名呼应男孩明轩女孩叫什么)

    很多二胎家庭ting里,宝妈要是生了“一儿一女”,那可是天大的喜xi事,全家人都会兴奋不已yi。尤其是婆婆,会因为自zi己孙子孙女满堂双全,骄傲ao地炫耀。通常,宝妈的家庭ting地位也会更上一yi层楼,相对更稳固。然…
    2023-06-17 阅读(29)
  • 银行卡余yu额生成器在线(银行卡余额生成器在线下载)

    银行卡余yu额生成器在线(银行卡余额生成器在线下载)

    中国建设银行票据ju生成器是一款可以生成账户余额题主想问的是中zhong国建设银行票据生成器怎样生sheng成账户郑败余额吧。1、在软件商店搜索并下xia载中国建设银行票据生成器qi;2、销让打开喊斗颤软件票piao据生成…
    2023-06-17 阅读(27)