区块链学堂(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

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

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

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

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

智能合约调用的Transaction

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

  • 从上图我们可以很清晰的看到调用智能合约,
  • 就是给智能合约的地址发送transaction
  • 除此之外,还需要给到rawdata, 从而实现调用智能合约中的方法的功能,例如mint()
Transaction的概念很重要,有的时候我们发现调用某个智能合约功能不生效时候,我们需要多去看看Transaction就可以知道到底执行情况如何。

QQ群:559649971 (区块链学堂粉丝群)
个人微信:steven_k_colin

获取最新区块链咨询,请关注《以太中文网》微信公众号:以太中文网

你可能感兴趣的:(区块链)