主页 > imtoken官方 > 以太坊开发-geth入门【通俗易懂】

以太坊开发-geth入门【通俗易懂】

imtoken官方 2024-01-26 05:08:15

以太坊开发--geth入门【通俗易懂】 geth全称go-ethereum,是用go语言编写的以太坊客户端,应该是目前最常用的客户端。 当然,以太坊客户端也是用C++、Ruby、Python、Java等语言编写的。 不同类型的客户端是为了满足不同的需求场景而设计的。 今天主要介绍geth(读音与guess相同)的使用。 对于我们的开发来说以太坊批量转账教程,打开geth控制台一般有两种方式,开发模式登录和私链模式登录。这两种方式是完全不同的

大家好,我是建筑先生,一个会写代码会吟诗的架构师。 今天我就来说说以太坊的发展--geth的介绍【通俗易懂】,希望能帮助大家进步!!!

geth的全称是go-ethereum,是用go语言编写的以太坊客户端,应该是目前最常用的客户端。 当然,以太坊客户端也是用C++、Ruby、Python、Java等语言编写的。 不同类型的客户端是为了满足不同的需求场景而设计的。 今天主要介绍geth(读音与guess相同)的使用。

对于我们的开发来说以太坊批量转账教程,打开geth控制台一般有两种方式,开发模式下登录和私链模式下登录。 这两种方式是完全不同的,两者的账号是不共享的。 开发模式登录比较简单,私链模式登录需要额外配置,我会在后面的博客中介绍。

(1)打开终端Terminal,执行以下命令以开发模式启动geth

geth --datadir "~/ethdev" --dev

这将在当前根目录中创建一个 ethdev 文件夹。 当然,您可以自己选择这个文件夹的名称。 我们先不管这个文件夹是干什么的,后面会介绍。

以太坊开发–geth的使用入门[通俗易懂]

(2)geth启动成功后,重新打开一个终端,执行如下命令打开geth控制台:

geth --dev console 2>>file_to_log_output

此命令将打开 geth 控制台并在目录中生成一个名为 file_to_log_output 的日志文件。 稍后我们将检查此日志文件。

以太坊开发–geth的使用入门[通俗易懂]

(3)查看当前有哪些账号可用

eth.accounts

以太坊开发–geth的使用入门[通俗易懂]

sitetuoluocaijing.cn 以太坊转账查询_以太坊批量转账教程_以太坊转账3天没到怎么办

.

可以看到目前没有账号。

(4) 创建一个新帐户

personal.newAccount('密码')

以太坊开发–geth的使用入门[通俗易懂]

我们在这里创建两个帐户。 然后使用eth.accounts查看账户:

以太坊开发–geth的使用入门[通俗易懂]

原来有两个帐户。

(5) 可以将账户赋值给某个变量,同时查询账户中的余额

以太坊开发–geth的使用入门[通俗易懂]

可以看到两个账户中的以太币都是0。因为我们还没有开始挖矿。

(6)日志文件上面说了,我们重新打开一个终端,我们使用如下命令打开日志:

尾巴-f file_to_log_output

以太坊开发–geth的使用入门[通俗易懂]

这个终端界面我们先放一边,在geth控制台进行任何操作的时候,都可以来这里查看日志。

以太坊转账3天没到怎么办_以太坊批量转账教程_sitetuoluocaijing.cn 以太坊转账查询

(7) 在geth控制台开始挖矿:

miner.start()

以太坊开发–geth的使用入门[通俗易懂]

观察日志输出:

以太坊开发–geth的使用入门[通俗易懂]

可以看到日志界面已经显示挖矿了。

(8) 停止挖矿

矿工。 停止()

以太坊开发–geth的使用入门[通俗易懂]

这时候你也可以看到日志界面的输出也停止了。

(9)此时我们来查看一下两个账户的账户余额

以太坊开发–geth的使用入门[通俗易懂]

可以看出,挖矿获得的以太币默认转入第一个账户。

(10) user1 将以太币转给 user2

eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

以太坊批量转账教程_sitetuoluocaijing.cn 以太坊转账查询_以太坊转账3天没到怎么办

以太坊开发–geth的使用入门[通俗易懂]

提示我们账号被锁了,需要解锁账号。

以太坊开发–geth的使用入门[通俗易懂]

账户解锁后,转账成功。 打印出来的是这笔交易的地址。

(11) 以太转账后查看user2账户余额

以太坊开发–geth的使用入门[通俗易懂]

.

但是发现user2的账号还是0,这是因为没有矿工可以挖了。 根据区块链的概念,我们知道每笔交易的确认其实都需要挖矿,也就是经过其他矿工的共识确认后才能加入到区块链的账本中。

OK,我们执行“miner.start()”开始挖矿,

以太坊开发–geth的使用入门[通俗易懂]

.

然后发现user2这个账户有3个以太币。 转移操作成功。

(12) 我们来实现一个用geth编译的智能合约

contract test {
    function multiply(uint a) returns(uint d) {

以太坊转账3天没到怎么办_以太坊批量转账教程_sitetuoluocaijing.cn 以太坊转账查询

return a * 7; } }

只听见建筑师办公室传来建筑师的声音:

天色早,晓风大,春相伴,夕阳老。 有谁会配上联或下联吗?

在geth中执行如下:

source = "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"

以太坊开发–geth的使用入门[通俗易懂]

然后编译合约:

合同 = eth.compile.solidity(source).test

编译结果如下:

以太坊开发–geth的使用入门[通俗易懂]

code:是合约编译后的字节码文件,是运行在以太坊虚拟机EVM上的字节码;

abiDefinition:其实就是合约的二进制接口,可以供外部调用;

其他一些参数也有名称。

以太坊转账3天没到怎么办_以太坊批量转账教程_sitetuoluocaijing.cn 以太坊转账查询

然后需要获取合约的abi(其实应该用的abi可以通过这个在线编译器获取):

abi=[{"常量":false,"输入":[{"名称":"a","类型":"uint256"}],"名称":"乘法","输出":[{"名称":"d","type":"uint256"}],"payable":false,"type":"function"}]

以太坊开发–geth的使用入门[通俗易懂]

然后访问abi接口:

MyContract=eth.contract(abi)

以太坊开发–geth的使用入门[通俗易懂]

然后获取合约实例:

myContract=MyContract.new({from:user1,data:contract.code})

以太坊开发–geth的使用入门[通俗易懂]

如果提示未解锁,解锁即可。

调用函数传递参数

以太坊开发–geth的使用入门[通俗易懂]

.

该函数执行乘以 7 的操作,输出符合预期。 合约执行成功。

以上就是geth最基本的使用。 我们会在以后的开发中学习geth更深入的功能。