声明
本文系:Vue3.0 +Quasar+ ethers.js 和以太坊智能合约交互 系列教程之一
智能合约
在上一小节中我说了,区块链就是想要打造的是一个完全去中心化、是想任何人都参与数据的创造、记录并且公开透明,永不可篡改的数据世界。而为了让我们每个人都能在上面去写数据,就诞生了合约(智能合约)。
此时你就可以将智能合约理解为:它是运行在区块链上的程序(APP)
因为区块链是去中心化的,因此合约又可以被称为——DAPP(D:Decentralized——去中心化)。
其实它和普通的APP没什么区别,也和普通的APP一样是提供各种功能供用户使用的,但是它和普通的APP不一样,它操作的所有方法、数据都是公开透明的,它也不像一般公司开发的APP一样。
一般性公司开发的APP代码只有开发的公司可见,而合约的代码全都是公开透明的。
还是以上一小节中的一个例子说明:
假设我们现在要在区块链上写一本小说,我们就会创建如下合约:
- 合约初始化的时候创建一本小说(因为我们只写一本)
- 合约上面有一个创建小说章节的方法,我们在区块链浏览器上调用一下,创建小说章节并且写入章节内容。
- 等到小说完成之后,合约上面有一个方法,可以让我们设置完结,我们在区块链浏览器上调用一下,设置完结。
此时一个合约和我们的交互就完成了,我们就利用合约在区块链上创作了数据。
代币合约、合约
现在市面上我们常见的两种合约分为代币合约和普通合约。其实它们都是合约(DAPP),只是功能上有所不同。
代币合约
代币合约的主要功能是对代币进行操作,一般代币合约上的所有方法或者功能都是为了操作代币。
比如以太坊的代币合约,它就有余额查询、金额授权等对代币进行操作的功能。
这里假设我们有一个电子商城,我们需要使用eth付款,我们就要接入eth的代币合约,进行金额授权、余额查询、转账等功能。
普通合约
普通合约就像我上面的例子小说合约一样,它只针对特定的功能开发的,因为上面讲得太多了这里就不多说了。