🐔16 不同公链的智能合约

[TOC]

公链

不同公链的智能合约的编写、部署方式都有所不同,比较新的公链智能合约开发和 DApp 开发基本都和 ETH 差不多,如 Conflux 。ETH 的智能合约开发已经成为一种公链标准,而大部分热门公链也都会遵循 ERC 系列标准。

Conflux 树图链

Conflux 是一个国产公链

  • 树图链官网 https://confluxnetwork.org/zh/

  • 树图链的开发文档 https://developer.confluxnetwork.org/

  • 树图链钱包类似 MetaMask 的有两个,旧版本是 ConfluxProtal,官方推荐使用 Fluent

树图链的智能合约

树图链的智能合约开发也可以使用 Solidity ,在智能合约开发上和以太坊没有差别,在以太坊能够正常部署执行的合约到树图链大部分能够一样执行。

  • 合约的在线开发工具 https://chainide.com/s/conflux 和以太坊的 remix 几乎相同。

Fluent 插件钱包

创建账号的过程和 MetaMask 类似,记录助记词账号创造完成。

  • 钱包文档 https://fluent-wallet.zendesk.com/hc/en-001/sections/4410740784411-Developer-Documentation

  • ConfluxProtal 文档 http://conflux-portal-docs.confluxnetwork.org/docs/portal/introduction/

Fluent

Fluent

Fluent 基本使用

浏览器安装 Fluent 插件后,Fluent 插件在浏览器 window 中对象名是 conflux

判断浏览器是否安装 Fluent

连接到 Fluent 钱包

调起 Fluent 转账

树图链的 js-conflux-sdk

js-conflux-sdk 是 Conflux 的 javascript SDK,类似于 ETH 的 web3.js ,是用于前端和树图链节点交互,通过 HTTP/Websocket JSON-RPC 连接到 Conflux 节点。

  • 除了 js-conflux-sdk 外,树图链也有其它语言的 RPC SDK,但使用上和以太坊的接近,如 Java https://github.com/conflux-chain/java-conflux-sdk 脱胎于以太坊的 web3j

  • js-conflux-sdk 的源码 https://github.com/Conflux-Chain/js-conflux-sdk

  • js-conflux-sdk 的文档 https://confluxnetwork.gitbook.io/js-conflux-sdk/

  • js-conflux-sdk 的 CDN https://cdn.jsdelivr.net/npm/js-conflux-sdk/dist/js-conflux-sdk.umd.min.js

js-conflux-sdk 的基本使用

js CDN

js 实例化

设置 provider

  • 设置 provider 为 Fluent ,后面 myWeb3 实例涉及需要签名、支付等操作都会调起 Fluent 进行操作。

投票 DApp 迁移到 Conflux 链

目前 以太坊 DApp 迁移到 Conflux 还不是很便捷,在涉及远程函数调用 send 方式需要修改,货币单位等也需要修改。

  • js-conflux-sdkweb3.js 对比文档 https://docs.confluxnetwork.org/js-conflux-sdk/jssdk-vs-web3

  • 源码 https://github.com/PandaManPMC/VoteDAppExample

Vite

Vite 是一款国人开发的公链,官网 https://www.vite.org/ , github https://github.com/vitelabs

  • Vite 不同于以太坊和 Conflux ,首先它的共识机制不是 POW ,不需要采矿,它是采用消息驱动的异步架构和基于 DAG 的反应式区块链。

  • Vite 前端也提供了 vitejs SDK,封装了 JSON RPC 与区块链节点进行交互,开发流程上和 Conflux 大同小异,也封装有 JAVA 等语言的 SDK。

Vite 智能合约

Vite 的智能合约开发是用 Solidity++ ,同 Solidity 有些许差异

  • Vite 的智能合约与以太坊的有些差异,因为 Vite 是一个完全不同的带有异步 VM 的区块链。Vite 上的所有消息调用都是完全异步的。

  • 包括语义、语法上 Vite 上的 Solidity ++ 智能合约与以太坊的智能合约都有较大差异,因此以太坊的合约很可能无法直接复制到 Vite 部署,需要修改。

  • Vite 合约的差异文档描述 https://docs.vite.org/go-vite/contract/soliditypp.html

Last updated