DAPP数字货币交易所开发逻辑,DAPP数字货币交易所系统开发(案例及源码)

简介:   DAPP是Decentralized Application的缩写,即去中心化应用,也有人称为分布式应用。它被认为开启了区块链3.0时代。

  DAPP是Decentralized Application的缩写,即去中心化应用,也有人称为分布式应用。它被认为开启了区块链3.0时代。

  智能合约有哪些特点?

  与传统的合约相比,智能合约有三大特点:

  1、合约内容公开透明

  智能合约部署在区块链上,其合约内容自然是公开透明的。

  2、合约内容不可篡改

  同样,因为部署在区块链上原因,智能合约的内容是无法被修改的。

  3、永久运行

  运行在区块链上的智能合约,同样被区块链上网络节点共同维护,只要区块链在,智能合约就能永久的运行下去。

  准备Uniswap合约源码

  源码结构

  Uniswap在Github上面开源了全部合约代码,其中包括核心合约,周边合约两部分.Uniswap还开源了前端代码,前端代码使用React开发

  在Uniswap的核心代码中,主要包含3个合约:工厂合约,配对合约,ERC20合约.其中配对合约继承了ERC20合约,我们可以把它们看作一个合约.工厂合约通过create2方法部署配对合约,所以在部署合约时只需要部署工厂合约.
  周边合约中包括一些示例代码,例如价格预言机,闪电交换,其中最重要的是路由合约.在周边合约的代码库中,包含两个路由合约:UnsiwapV2Router01,UnsiwapV2Router02.工厂合约和配对合约需要通过路由合约调用才能更好的完成交易所的全部功能,所以我们还要部署路由合约

  准备部署账户

  Uniswap的路由合约部署在以太坊的主网和Ropsten,Rinkeby,Goerli,Kovan几个测试网的合约地址都是相同的,这样可以使Uniswap的前端不管切换到任何一个网络,路由地址都不会变.要想实现这个相同地址的部署,我们需要准备一个全新的账户用来部署合约.全新的账户指的是在部署合约之前的nonce值为0.因为合约的地址是根据你的账户地址和nonce值计算出来的,所以在不同网络中,如果nonce值相同,部署出的合约地址也相同.

  准备WETH合约地址

  在部署路由合约时,构造函数中需要填入工厂合约的地址和WETH合约的地址,由于WETH合约的地址在主网和测试网的地址都不相同,所以需要找到每个网络中WETH合约的地址.

  申请infuraKey

  在部署合约之前,我们还需要使用infura作为免费节点,所以需要申请一个infuraKey

  使用remix部署合约

  将工厂合约和路由合约的线上版本导入到remix中,在编译合约的选项中,EVM VERSION选择istanbul,COMPILER CONFIGURATION中选择Enable optimization

  部署顺序和构造函数

  部署工厂合约

  构造函数的参数是一个自己常用的账户地址

  部署路由合约01[可选],02

  构造函数的参数1是工厂合约的地址

  参数2是当前网络中WETH合约的地址,

  部署Uniswap前端

  克隆前端代码

  在项目目录运行命令:

  $git clone https://github.com/Uniswap/uniswap-interface.git

  安装依赖库

  在项目目录运行命令:

  $cd uniswap-interface

  $yarn

  安装完成后,可以先测试运行一下,在uniswap-interface目录运行命令

  $yarn start

  如果运行成功,将会打开一个浏览器,同时打开Uniswap的前端界面

  修改路由地址

  在Uniswap的前端中以常量的形式定义了Uniswap的路由地址,我们只需要修改路由地址就可以让前端链接到你的路由合约中

  修改文件:项目目录/uniswap-interface/src/constants/index.ts第6行

  import{AbstractConnector}from'web3-react/abstract-connector'

  import{ChainId,JSBI,Percent,Token,WETH}from'uniswap/sdk'

  import{fortmatic,injected,portis,walletconnect,walletlink}from'../connectors'

  export const ROUTER_ADDRESS='0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'//修改成你的路由合约地址

  ......

  保存后运行yarn start即可看到效果

  将代码部署到GitHub Pages

  创建GitHub项目

  创建项目的方法就不在这里讲了,不会的同学可以去搜索一下

  将前端代码添加到GitHub项目仓库

  首先要删除原先Uniswap项目中的.git目录,在项目目录运行命令:

  $cd uniswap-interface

  $rm-rf.git

  然后初始化git,并将Unsiwap前端代码添加到自己的项目仓库中

  git init

  git remote add origin https://github.com/用户名/项目名.git

  安装并部署gh-pages

  我们将通过gh-pages模块将前端代码部署到github.io,在前端代码的目录运行:

  $yarn add gh-pages

  接下来要编译react和部署gh-pages,在前端代码的目录运行:

  $yarn build

  修改前端代码目录中的package.json

  $vim package.json

  {

  "name":"uniswap/interface",

  "description":"Uniswap Interface",

  "homepage":"https://用户名.github.io/项目名称",//修改这里

  ......

  //添加部署的脚本,还是在package.json中

  ......

  "scripts":{

  ......

  "deploy":"gh-pages-d build"//添加这一行

  },

  保存退出之后,在前端代码的目录运行:

  $git add.

  $git commit-m"first commit"

  $git push

  $yarn deploy

  现在在浏览器中打开https://用户名.github.io/项目名称/index.html就可以打开自己的交易所啦.

  如果不输入地址结尾的index.html在项目刚部署之后会报错,过一段时间就可以不输入了.

相关文章
|
6月前
|
安全 区块链 数据库
智能合约DAPP交易所开发系统案例
智能合约运用了分布式账本技术。区块链是一种去中心化的数据库,每个参与者都可以拥有一份完整的账本副本
|
11月前
|
存储 安全 区块链
dapp合约系统开发|dapp分红系统开发案例分析
“去中心化”是区块链的典型特征之一,其使用分布式储存与算力,整个网络节点的权利与义务相同
|
存储 安全 区块链
区块链智能合约DAPP开发|DAPP合约代币项目开发(案例说明)
区块链技术使用了分布式网络来实现去中心化
|
JavaScript 前端开发 Go
区块链Dapp智能合约系统开发(开发功能)丨dapp/defi代币合约项目系统开发成熟案例版及源码部署
The following are important technical points in the development process of smart contract DApp:
|
区块链 数据库 开发者
数字货币去中心化交易所系统开发(详细功能)/案例设计/程序逻辑/成熟技术丨数字货币去中心化交易所开发源码项目
区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链技术不是一个单项的技术,而是一个集成了多方面研究成果基础之上的综合性技术系统。There are three indispensable core technologies:consensus mechanism,Cryptography principle and distributed data storage.
|
安全 区块链
数字货币秒合约系统开发(开发案例)丨数字货币合约交易/秒合约交易所系统开发(方案详细)/程序开发/源码项目/成熟技术
 Blockchain 2.0 has become a term for decentralized blockchain databases.Utilize blockchain data structures to validate and store data,and use distributed node consensus algorithms to generate and update data,利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约,编程和操作数据的全新的分布式基础架构与计算范式。
DAPP去中心化交易所系统开发详细功能丨DAPP去中心化钱包系统开发规则详细/成熟技术/源码说明
 A smart contract is a computer program that runs on a blockchain. Programs include functions and data (also known as variables or parameters), which operate on data. The data used by the function needs to be stored in the computer's memory
|
安全 API 区块链
区块链钱包交易所系统开发详细逻辑丨数字货币交易所钱包系统开发(开发案例)及源码部署
  在区块链中,每个块包含了一定数量的交易信息和该块的唯一标识符,同时还包含了前一个块的哈希值。这样的设计保证了区块之间的顺序和完整性,一旦一个块被添加到区块链中,它就不可更改。这使得区块链成为一个安全可信的分布式账本,可用于记录和验证各种类型的交易。
|
安全 区块链
DAPP去中心化交易所系统开发(开发项目)丨DAPP去中心化交易所系统开发(详细案例)/源码功能
  智能合约是区块链DApp的重要组成部分,是实现区块链DApp商业逻辑的基础。因此,设计智能合约应该根据业务需求进行规划,明确合约的功能和业务流程。
|
JSON 区块链 数据格式
交易所/钱包系统开发技术原理丨数字货币交易所/钱包系统开发(开发功能)及案例源码
  公链是Web3.0的核心载体,支持互操作、赋权赋能和信用机制,以及各类应用,Web3.0公链赛道主要包括Layer1、Layer2、Layer0。