美文网首页以太坊- Ethereum
以太坊开发(十一)Mist使用:Transaction详解

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

作者: yuyangray | 来源:发表于2018-03-05 11:52 被阅读129次

    这篇文章来自以太中文网:区块链学堂(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
    作者:以太中文网

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ettxfftx.html