自己编写原始请求,与以太坊网络中的智能合约进行交互,是一件相当繁琐的工作。
Truffle简化了这个工作,利用Truffle提供的功能,我们可以方便地与合约进行交互。
读写数据
以太坊网络中,对于向网络写入数据,以及从网络读取数据的2种行为作了区分,这种区分对如何编写应用程序有重要影响。
通常,写入数据称为交易,而读取数据称为调用。交易和调用的处理方式非常不同。
交易
交易会向网络写入数据,改变网络状态。
交易可以是简单地向一个账户发送以太币,也可以复杂到执行合约函数或向网络添加新合约。
交易有运行成本,需要消耗Gas,Gas需要用以太币支付。
交易处理需要消耗时间,不会马上返回。如果你通过交易执行合约的函数,该函数不会马上返回,因为交易不是立即处理的。通常,通过交易执行的函数不会有返回值,而是返回一个交易id。
总结交易的特点:
- 有执行成本,消耗Gas
- 更改网络的状态
- 不立即处理
- 没有返回值(得到交易id)。
调用
与交易相比,调用是非常不同的,调用是只读的。
调用可用于在以太坊网络上执行代码,但不会更改网络中的数据。
调用可以免费执行。
当通过调用执行合约函数时,将立即收到返回值。
总结调用的特点
- 免费,不消耗Gas
- 不改变网络的状态
- 立即处理
- 有返回值
是交易还是调用,只需看是否向网络写入数据。