这篇文章来自以太中文网:区块链学堂(19):Mist 5–Transaction,我会对使用过程中自己遇到的问题进行补充。
Mist中的基本概念回顾
以太坊账户体系
-
一种是普通的以太坊账户,这类账户由一对公钥和私钥组成。公钥就是该账号的地址,是可以公开的。秘钥是密码的一段加密hash值。私钥一定要保存妥当,一旦遗失,就无法证明
你是你
这个难题。 -
一种是合约账户,一种特殊的账户,由代码所组成的账户。这种账户也可以像普通账户一样接收以太币,或者发放以太币,同时还可以通过EVM来执行智能合约里面的方法,从而实现商业应用。
Transactions
账户和账户之间的交易,都是通过Transactions来执行的,例如eth.accounts[0]
要发送100以太币给eth.accounts[1]
, 这个时候所执行的Transaction如下所示
又比如我们执行Token合约中的mint()
方法,从区块链底层看来就是从msg.sender
给智能合约地址,发送一个transaction, 只不过这个transaction的地址是智能合约的地址,同时还带上了一个RawData罢了。如图所示:
Blocks
Blocks也就是区块,区块链区块链,顾名思义,就是由区块链接起来的一个分布式数据库。任何账户之间的变动,都必须被新挖出的Blocks计入他们的账本,且被多个区块所认可,那么此时这个交易才算真正生效。否则是无效的。
普通账户之间以太币转移的Transaction
我们可以重复一遍之前的操作,从Main Account再转100 以太币到Account 1。然后立刻打开Main Account的页面,我们看到的Latest Transactions是这样的。
过了一段时间之后变成了下图所示:
image点击该Transaction可以看到Transaction的细节
可以很清晰的看到对于一个Transactions来说,他也有自己的地址,也需要被挖矿挖掘出来并记账,并被多个区块所确认。
智能合约调用的Transaction
我们可以打开Token合约,重新调用token合约中的mint()
方法,然后打开transaction,查看细节如图:
从上图我们可以很清晰的看到调用智能合约,就是给智能合约的地址发送transaction。除此之外,还需要给到rawdata, 从而实现调用智能合约中的方法的功能,例如mint()
。
参考:区块链学堂(19):Mist 5–Transaction
作者:以太中文网
网友评论