Truffle – 与合约交互

自己编写原始请求,与以太坊网络中的智能合约进行交互,是一件相当繁琐的工作。

Truffle简化了这个工作,利用Truffle提供的功能,我们可以方便地与合约进行交互。

读写数据

以太坊网络中,对于向网络写入数据,以及从网络读取数据的2种行为作了区分,这种区分对如何编写应用程序有重要影响。

通常,写入数据称为交易,而读取数据称为调用。交易和调用的处理方式非常不同。

交易

交易会向网络写入数据,改变网络状态。

交易可以是简单地向一个账户发送以太币,也可以复杂到执行合约函数或向网络添加新合约。

交易有运行成本,需要消耗Gas,Gas需要用以太币支付。

交易处理需要消耗时间,不会马上返回。如果你通过交易执行合约的函数,该函数不会马上返回,因为交易不是立即处理的。通常,通过交易执行的函数不会有返回值,而是返回一个交易id。

总结交易的特点:

  • 有执行成本,消耗Gas
  • 更改网络的状态
  • 不立即处理
  • 没有返回值(得到交易id)。

调用

与交易相比,调用是非常不同的,调用是只读的。

调用可用于在以太坊网络上执行代码,但不会更改网络中的数据。

调用可以免费执行。

当通过调用执行合约函数时,将立即收到返回值。

总结调用的特点

  • 免费,不消耗Gas
  • 不改变网络的状态
  • 立即处理
  • 有返回值

是交易还是调用,只需看是否向网络写入数据。

章节



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载