主页 > imtoken官网最新版 > 如何使用以太坊上的代币与智能合约交互进行数据传输(一)
如何使用以太坊上的代币与智能合约交互进行数据传输(一)
如何使用以太坊上的代币与智能合约交互进行数据传输(一)
接触区块链概念进入开发状态已经有一段时间了。 最近,我也在以太坊上发布了几个智能合约。 现将个人经验总结如下,也算是学习总结。 希望后来者减少一些坑。 有不清楚的也可以直接联系我,微信yyy99966,一起学习
本文为系列第一篇,希望详细讲解交互过程,为学习者提供一些帮助。
概述
向以太坊网络发送请求,以便与合约进行交互,那么你很快就会意识到我要使用什么编程语言,我在这里推荐它智能合约 以太坊,经过反复尝试,我最终锁定了 web3jAPI,这是目前最好的以太坊和传统程序交互的编程API接口,该接口使用nodejs作为服务端编程环境,nodejs是一个基于javascript脚本语言的服务端程序框架,也就是说我们需要实现数据交换,编程知识结构:
1.熟悉nodejs编程环境框架
2、熟练掌握javascript语言。
3.熟悉web3jsAPI接口规范
4. 熟悉solidity语言编写以太坊智能合约
5.网页前端的html智能合约 以太坊,当然也需要
6.还有一个重要的数据库,这里使用mysql
有了以上的知识背景,下面开始介绍web3jAPI中的几个相关概念:
读写数据
以太坊网络区分向网络写入数据和从网络读取数据,这种区分在应用程序的编写方式中起着重要作用。 通常,写入数据称为事务,读取数据称为调用。 事务和调用的处理方式截然不同,具有以下特点。
交易
交易从根本上改变了网络的状态。 交易可以像将以太币发送到另一个账户一样简单,也可以像执行合约功能或向网络添加新合约一样复杂。 事务的定义特征是它写入(或更改)数据。 交易的运行成本很高,称为“gas”,交易的处理需要时间。 当您通过交易执行合约的功能时,您无法收到该功能的返回值,因为交易没有立即处理。 通常,通过事务执行的函数不会返回值; 他们将返回一个交易 ID。 所以总的来说,Transactions 的特点如下:
消耗气体(以太)
修改网络状态
不能立即执行
不公开返回值(返回交易 ID)
来电
调用正好相反。 调用可以是在网络中执行代码而不永久更改数据(状态)。 通话是免费的,其本质是读取数据。 当您使用 call 调用合约中的方法时,该函数会立即返回。 总的来说,Calls的特点:
免费(不消耗gas)
不改变网络状态
立即执行
将公开一个返回值
选择使用 Transaction 还是 Call 很简单,取决于您是读取数据还是写入数据。
先介绍到这里
相关参考我的博客园链接