DAPP质押挖矿智能合约系统模式开发技术
什么是智能合约?
智能合约,telegram:jt9119简单来说就是“不需要人工干预的,自动执行的合同”。它是一种以密码学为基础,通过数学算法来保证数据的安全性、不可篡改性和防抵赖性以及执行结果可追踪性的计算机程序。从本质上来说,智能合约就像是一个加密的数据库。
Web 3.0与区块链,
Web开I762蕟O72搭9II9-中重要的是用户拥有自己的数据,那么也就是说我们的数据不能存储在任何中心化的存储上。这时候就需要区块链这种去中心化的技术了。
所以,也有人说所谓的Web 3.0,其实就是运行在区块链技术上的去中心化互联网。
DApp的基本架构图:
主要分为三个部分:
1、区块链以及本身提供的能力
2、三方钱包等提供的能力
3、我们要写的DApp部分----分为三个部分:
(1)和EVM交互的合约层--solidity编写;
(2)和合约层、钱包交互的交互层-web3js,其和Ajax类似,可以用来读取以太区块链,主要使用的JSON RPC和区块链进行通信,对区块链网络进行数据的读写操作;
(3)前端代码业务层-vue、react等编写;DAPP可以使用
开发dapp的步骤
1、开发智能合约:一般使用solidity语言进行开发,选用以太合约、bsc合约等;
2、部署智能合约:一般使用remix工具进行部署,先在测试环境中进行部署智能合约,申请对应的测试币;
3、开发dapp前端:使用前端框架进行开发,前端设计到和钱包的连接、调用合约、数据查询等内容;
环境搭建
主要需要解决的问题是模拟链(毕竟真链上的操作都是要花钱的)、钱包和合约的问题;
1、链可以用ganache进行模拟
2、钱包用MetaMask
3、solidity既然是一个编程语言,并且要跑再EVM上,那就有编写、编译、测试和调试的地方,这里推荐使用remix
3.2.4部署和调用
DApp在被调用之前需要先部署到以太上,主要分为部署和调用两部分;
(1)部署
一个DApp可以由多个智能合约组成,因此部署一个DApp也就是同时部署多个智能合约,那么部署一个智能合约的流程图如下:
智能合约使用RPC调用以太的钱包、Web3.js等工具;
Web3.js将合约部署到以太中的Solc编译器中;
编译器将编译后的字节码返回;
将合约字节码以及相关参数发送到以太的节点中;
以太部署节点后返回合约地址以及二进制接口(ABI)
(2)调用
部署好的合约可以进行调用,前端调用主要依赖MetaMask插件,前端的Web3 Provider是与特定的以太节点相连,可以直接使用
web3调用,下图展示了前端调用合约的一般流程。
智能合约:存在于区块链上的代码片段。它们在区块链内操作,且不可更改。
节点/Web3提供者:telegram:jt9119,要从区块链获取数据,需要节点或Web3提供者;节点运行区块链的副本。节点是web3开发人员栈的重要组成部分,因为没有节点,web3库就无法与智能合约交互。它们充当进入区块链领域的门户。
智能合约,telegram:jt9119简单来说就是“不需要人工干预的,自动执行的合同”。它是一种以密码学为基础,通过数学算法来保证数据的安全性、不可篡改性和防抵赖性以及执行结果可追踪性的计算机程序。从本质上来说,智能合约就像是一个加密的数据库。
Web 3.0与区块链,
Web开I762蕟O72搭9II9-中重要的是用户拥有自己的数据,那么也就是说我们的数据不能存储在任何中心化的存储上。这时候就需要区块链这种去中心化的技术了。
所以,也有人说所谓的Web 3.0,其实就是运行在区块链技术上的去中心化互联网。
DApp的基本架构图:
主要分为三个部分:
1、区块链以及本身提供的能力
2、三方钱包等提供的能力
3、我们要写的DApp部分----分为三个部分:
(1)和EVM交互的合约层--solidity编写;
(2)和合约层、钱包交互的交互层-web3js,其和Ajax类似,可以用来读取以太区块链,主要使用的JSON RPC和区块链进行通信,对区块链网络进行数据的读写操作;
(3)前端代码业务层-vue、react等编写;DAPP可以使用
开发dapp的步骤
1、开发智能合约:一般使用solidity语言进行开发,选用以太合约、bsc合约等;
2、部署智能合约:一般使用remix工具进行部署,先在测试环境中进行部署智能合约,申请对应的测试币;
3、开发dapp前端:使用前端框架进行开发,前端设计到和钱包的连接、调用合约、数据查询等内容;
环境搭建
主要需要解决的问题是模拟链(毕竟真链上的操作都是要花钱的)、钱包和合约的问题;
1、链可以用ganache进行模拟
2、钱包用MetaMask
3、solidity既然是一个编程语言,并且要跑再EVM上,那就有编写、编译、测试和调试的地方,这里推荐使用remix
3.2.4部署和调用
DApp在被调用之前需要先部署到以太上,主要分为部署和调用两部分;
(1)部署
一个DApp可以由多个智能合约组成,因此部署一个DApp也就是同时部署多个智能合约,那么部署一个智能合约的流程图如下:
智能合约使用RPC调用以太的钱包、Web3.js等工具;
Web3.js将合约部署到以太中的Solc编译器中;
编译器将编译后的字节码返回;
将合约字节码以及相关参数发送到以太的节点中;
以太部署节点后返回合约地址以及二进制接口(ABI)
(2)调用
部署好的合约可以进行调用,前端调用主要依赖MetaMask插件,前端的Web3 Provider是与特定的以太节点相连,可以直接使用
web3调用,下图展示了前端调用合约的一般流程。
智能合约:存在于区块链上的代码片段。它们在区块链内操作,且不可更改。
节点/Web3提供者:telegram:jt9119,要从区块链获取数据,需要节点或Web3提供者;节点运行区块链的副本。节点是web3开发人员栈的重要组成部分,因为没有节点,web3库就无法与智能合约交互。它们充当进入区块链领域的门户。