以太坊开发(十一)Mist使用:Transaction详解

这篇文章来自以太中文网:区块链学堂(19):Mist 5–Transaction,我会对使用过程中自己遇到的问题进行补充。

Mist中的基本概念回顾

以太坊账户体系

  • 一种是普通的以太坊账户,这类账户由一对公钥和私钥组成。公钥就是该账号的地址,是可以公开的。秘钥是密码的一段加密hash值。私钥一定要保存妥当,一旦遗失,就无法证明 你是你 这个难题。

  • 一种是合约账户,一种特殊的账户,由代码所组成的账户。这种账户也可以像普通账户一样接收以太币,或者发放以太币,同时还可以通过EVM来执行智能合约里面的方法,从而实现商业应用。

Transactions

账户和账户之间的交易,都是通过Transactions来执行的,例如eth.accounts[0]要发送100以太币给eth.accounts[1], 这个时候所执行的Transaction如下所示

以太坊开发(十一)Mist使用:Transaction详解_第1张图片

又比如我们执行Token合约中的mint()方法,从区块链底层看来就是从msg.sender给智能合约地址,发送一个transaction, 只不过这个transaction的地址是智能合约的地址,同时还带上了一个RawData罢了。如图所示:

以太坊开发(十一)Mist使用:Transaction详解_第2张图片

Blocks

Blocks也就是区块,区块链区块链,顾名思义,就是由区块链接起来的一个分布式数据库。任何账户之间的变动,都必须被新挖出的Blocks计入他们的账本,且被多个区块所认可,那么此时这个交易才算真正生效。否则是无效的。

普通账户之间以太币转移的Transaction

我们可以重复一遍之前的操作,从Main Account再转100 以太币到Account 1。然后立刻打开Main Account的页面,我们看到的Latest Transactions是这样的。

以太坊开发(十一)Mist使用:Transaction详解_第3张图片

过了一段时间之后变成了下图所示:

以太坊开发(十一)Mist使用:Transaction详解_第4张图片
image

点击该Transaction可以看到Transaction的细节

以太坊开发(十一)Mist使用:Transaction详解_第5张图片

可以很清晰的看到对于一个Transactions来说,他也有自己的地址,也需要被挖矿挖掘出来并记账,并被多个区块所确认。

智能合约调用的Transaction

我们可以打开Token合约,重新调用token合约中的mint()方法,然后打开transaction,查看细节如图:

以太坊开发(十一)Mist使用:Transaction详解_第6张图片

从上图我们可以很清晰的看到调用智能合约,就是给智能合约的地址发送transaction。除此之外,还需要给到rawdata, 从而实现调用智能合约中的方法的功能,例如mint()

参考:区块链学堂(19):Mist 5–Transaction
作者:以太中文网

你可能感兴趣的:(以太坊开发(十一)Mist使用:Transaction详解)