深入分析以太链ETH智能合约DAPP系统开发详情及源码

简介: 以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain,共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)

  以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain,共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)

  一、简介

  智能合约

  首先,智能合约并不是像人工智能AI那样的超级智能,智能合约的英文名叫Smart contract,,仅仅是Smart而已,还没有到人工智能的intelligence。

  NFT

  上面我们知道了,智能合约类似一种自动售货机,出售的是通证(token)。如果出售的token的类型是独一无二的,并且是不可分割的,这种token就叫做Non-Fungible Token,即是NFT(需要符合ERC-721标准)。例如一个token代表一张体育比赛的门票,因为每一张门票座位编号不一样,所以对应的token独一无二,又因为座位只能出售给一个人,因为对应的token也不能分割。

  一、以太坊区块链网络简介

  以太坊区块链网络

  以太坊公共区块链网络

  对区块链最好的描述是将其描述为一个公共数据库,它由网络中的许多计算机更新和共享,并且任何人都可以接入。ETH链上系统开发对接唯:MrsFu123,以太坊公共区块链网络也不例外。目前,以太坊公共区块链网络提供了主网和三个测试网,主网就是智能合约正式上线的区块链网络,三个测试网分别为Kovan、Rinkeby和Ropsten。Ropsten是官方提供的和主网最相似的网络,使用工作量证明;Rinkeby也是官方提供的,使用权益证明。

  节点、Geth、Infura

  我们的程序需要访问以太坊节点,才能连接到以太坊公共区块链网络。有几种方法可以做到这一点,可以使用Geth运行自己的以太坊节点。但这需要从区块链下载大量数据并保持同步,很麻烦,成本也高。比较方便的方法是,使用Infura访问以太坊节点。

  Infura是什么?Infura是一种IaaS(Infrastructure as a Service)产品,目的是为了降低访问以太坊数据的门槛。通俗一点讲,Infura就是一个可以让你的DApp快速接入以太坊的平台,不需要本地运行以太坊节点。

  Infura是一个免费提供以太坊节点的服务。接下来有Infura的使用说明。

  一、智能合约应用模块简介

  我们的智能合约应用使用Solidity Template项目模板开发框架来开发。下面简单介绍Solidity Template的组成。

  智能合约应用组成模块

  Solidity Template——项目模板

  Solidity Template是一个Hardhat项目的模板,除了集成Hardhat,还集成了以太坊linter、代码格式化、代码覆盖率测试等工具。Solidity Template直接clone或者下载回来就能使用,非常方便。

  Hardhat——项目主框架

  Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。使用Hardhat可以方便地开发以太坊的智能合约和dApps。

  Waffle——智能合约应用测试库

  Waffle是一个编写和测试以太坊智能合约的库,比Truffle更加好用,简单和快速,它内部使用了ethers-js、Mocha和Chai。我们将使用它来编写智能合约应用的测试代码。

  Ethers.js——智能合约API库

  Ethers.js是一个编译、部署、测试和调试以太坊应用的开发环境。使用Hardhat可以方便地开发以太坊的智能合约和dApps。这是我们开发智能合约应用所用的最多API的库。这里有中文文档,和官方英文文档。

  Mocha和Chai——测试框架和断言库

  Mocha是一个功能丰富的javascript测试框架,运行在node.js和浏览器中,使异步测试变得简单有趣。Chai是一个针对Node.js和浏览器的行为驱动测试和测试驱动测试的诊断库,可与任何JavaScript测试框架集成。

相关文章
|
安全 区块链
IPP Swap代币合约去中心化交易所系统开发实现技术详细/案例介绍/规则逻辑/方案项目/源码程序
  What is pledging mining?   Pledge mining refers to the process of locking digital currency onto the blockchain through specific security mechanisms to obtain profits.Investors obtain the benefits generated by network operations by selecting appropriate projects and locking in a corresponding numb
|
存储 供应链 前端开发
智能合约Dapp系统链上开发部署源码规则解析
智能合约Dapp系统链上开发部署源码规则解析
|
存储 区块链 数据安全/隐私保护
BSC链DAPP合约技术系统开发指南与需求
最重要的事情是为团队提供充分的理由说明去中心化是有意义的
|
前端开发 安全 Java
BSC链DAPP智能合约NFTswap/IPPswap/Defiswap/OMNIswap系统开发(开发方案)/项目程序/案例源码
  什么是智能合约DApp   智能合约DApp是计算机程序,通过它,交易双方可以共同完成交易。如果在执行过程中发生了一系列变化,那么智能合约将会记录这些变化并自动执行这些变化。
|
安全 区块链
DAPP代币合约BSC链系统开发详细程序丨BSC链DAPP合约代币系统开发(项目案例)及源码逻辑
  Dapp的核心是智能合约,它定义了应用程序在区块链上运行的规则和逻辑。在设计智能合约时,需要仔细考虑业务逻辑,并确保安全性和可靠性。使用Solidity等语言编写智能合约,并进行测试和部署。
|
存储 人工智能 安全
BSC链DAPP智能合约项目系统开发案例分析/需求项目/源码逻辑
  区块链技术的去中心化和安全性质,使得它与人工智能技术的结合更加有意义。区块链可以提供安全的数据存储和传输,而人工智能可以提供更加智能化和自动化的操作方式。
|
区块链
马蹄链智能合约系统DAPP开发源码实例分析
马蹄链智能合约系统DAPP开发源码实例分析
|
存储 区块链
DAPP链上智能合约开发稳定版丨DAPP智能合约链上系统开发规则及详情/源码版
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。是一个共享的分布式账本,其中交易通过附加块永久记录。
|
区块链 数据安全/隐私保护
马蹄链DAPP合约模式系统开发技术(原理)
马蹄链DAPP合约模式系统开发技术(原理)
102 0