浅谈ETH以太链丨BSC币安链智能合约系统开发实现技术及源码分析

简介: 据存储【由于gas成本高,智能合约目前不适合存储大量数据。因此,大多数DApps将利用去中心化存储(如IPFS或Swarm)来存储和分发大型静态资产,如图像,视频和客户端应用程序(HTML,CSS,JavaScript)。内容的哈希值通常使用键值映射存储为智能合约中的字节。然后,通过你的前端应用程序调用智能合约检索资产,以获取每个资产的URL。

DApp的组件:

1、区块链(智能合约);

2、前端(Web用户界面(UI))【Web前端技术(HTML,CSS,JavaScript)】;

3、数据存储【由于gas成本高,智能合约目前不适合存储大量数据。因此,大多数DApps将利用去中心化存储(如IPFS或Swarm)来存储和分发大型静态资产,如图像,视频和客户端应用程序(HTML,CSS,JavaScript)。内容的哈希值通常使用键值映射存储为智能合约中的字节。然后,通过你的前端应用程序调用智能合约检索资产,以获取每个资产的URL。】

Truffle常用命令:

在当前目录下初始化一个全新的APP

truffle init

构建一个开发中的app版本,创建.build目录。

truffle build

编译 --compile-all: 强制编译所有合约

--network 名称:以太链开发唯:MrsFu123指定使用的网络,保存编译的结果到指定的网络上

truffle compile

运行一个控制台,里面包含已初始化,且随时可用的合约对象。

truffle console

移植(部署)系统开发唯:MrsFu123

truffle migrate

    --reset: 从头运行所有的移植。

    --network 名称:指定要使用的网络,并将编译后的资料保存到那个网络。

    --to number:将版本从当前版本移植到序号指定的版本。

    --compile-all: 强制编译所有的合约

    --verbose-rpc:打印Truffle与RPC交互的详细日志。

在Truffle的环境下执行一个Javascript文件 truffle exec /path/to/my/script.js

truffle exec

http://localhost:8080提供编译的app对应的服务,且在需要的时候自动构建,自动部署

truffle serve

-p port: 指定http服务的端口。默认是8080。

--network 名称:名称:指定要使用的网络,并将编译后的资料保存到那个网络

监控文件系统的文件变化,重编译,重部署你的合约

truffle watch

Hardhat

经常与之对比的是 Hardhat vs Truffle(https://trufflesuite.com/)。相比其它作为web3基础设施的开发工具,Hardhat 更加轻量,采用插件化的思想,非常适合作为新手dapp开发入门的工具。

web3

为了便利Web端和区块链进行交互,我们需要一个JS API来实现这个功能,他就是web3.js,它提供了各种接口来实现和区块链以及智能合约的交互。

react.js、vue.js 或 angular.js 是很好的 javascript 前端框架,因为它们可以使用 ethers.js 或 web3.js 轻松与区块链网络集成。

一个以太坊帐户是一个具有以太币 (ETH) 余额的实体,可以在以太坊上发送交易。 帐户可以由用户控制,也可以作为智能合约部署。

以太坊有两种帐户类型:

外部持有 – 私钥的所有者控制

合约 – 一种由代码控制,部署在网络上的智能合约。 了解智能合约。

这两种帐户类型都能:

接收、持有和发送 ETH 和 token

与已部署的智能合约进行交互

主要区别

外部持有(EOA)

创建帐户是免费的

可以发起交易

外部所有的帐户之间只能进行 ETH 和代币交易

合约(CA)

创建合约存在成本,因为需要使用网络存储空间

只能在收到交易时发送交易

从外部帐户向合约帐户发起的交易能触发可执行多种操作的代码,例如转移代币甚至创建新合约

GAS

Gas 即矿工费。以太坊上每笔交易的执行(被矿工打包)都会被收取一定数量的 Gas

1eth=10^18wei ; 1wei=10^9gwei

GasLimit:愿意支付矿工费的上限。 GasPrice:矿工费单价。

gas = GasLimit * GasPrice

以太坊虚拟机(EVM)

EVM 即以太坊虚拟机,全称是 Ethereum Virtual Machine。它是以太坊智能合约的运行环境

EVM 是由以太坊节点提供。每个以太坊节点中都包含 EVM。

Solidity 之于 EVM,就像 Java 跟 JVM 的关系一样。

以太坊虚拟机是一个隔离的环境,在 EVM 内部运行的代码跟外部没有联系

智能合约

【智能合约 —— dapp 的后端,因为缺少更好的术语。 有关详细概述,请访问我们的智能合约部分。一旦部署无法更改】智能合约只是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。智能合约也是一个以太坊帐户,我们称之为合约帐户(以数字形成定义的能够自动执行条款的合约)智能合约之于区块连,相当于SQL之于数据库

合约编译

以太坊虚拟机上运行的是合约的字节码,类似于汇编语言。这就需要我们在部署之前先对合约进行编译,转换成字节码。

合约部署

合约部署后,当需要调用这个智能合约的方法时,只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在 EVM 中执行了。

合约运行

合约部署后,当需要调用这个智能合约的方法时,只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在 EVM 中执行了。

相关文章
|
安全 IDE 区块链
BTC比特链/ETH以太链/BSC币安链/TRX波场链/Matic马蹄链智能合约系统开发稳定版丨指南步骤丨源码详情
Developing a smart contract system is actually the process of writing and executing code on a specific blockchain (such as Bitcoin, Ethereum, Binance Smart Chain, Tron, or Polygon (Matic)). These codes (conventions) have the ability to automatically execute and facilitate transactions without interm
|
8月前
|
监控 安全 数据可视化
BSC币安链/TRC波场链铭文交易所系统开发详细方案/步骤逻辑/指南项目/源码功能
基于BSC(币安链)和TRC(波场链)的铭文交易所系统开发
|
存储 区块链 数据安全/隐私保护
BSC链DAPP合约技术系统开发指南与需求
最重要的事情是为团队提供充分的理由说明去中心化是有意义的
|
安全 区块链
DAPP代币合约BSC链系统开发详细程序丨BSC链DAPP合约代币系统开发(项目案例)及源码逻辑
  Dapp的核心是智能合约,它定义了应用程序在区块链上运行的规则和逻辑。在设计智能合约时,需要仔细考虑业务逻辑,并确保安全性和可靠性。使用Solidity等语言编写智能合约,并进行测试和部署。
|
人工智能 开发框架 JavaScript
深入分析以太链ETH智能合约DAPP系统开发详情及源码
以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain,共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)
|
区块链 数据安全/隐私保护
马蹄链DAPP合约模式系统开发技术(原理)
马蹄链DAPP合约模式系统开发技术(原理)
102 0
|
JavaScript Java Go
深入分析以太链/波场链/火币链/币安链LP代币合约流动性质押挖矿分红机制系统开发详细逻辑及源码
 Fabric's smart contract is called chain code, which is divided into system chain code and user chain code. System chain code is used to realize system level functions, and user chain code is used to realize user application functions. The chain code is compiled into an independent application that
|
SQL 存储 NoSQL
DAPP币安链BSC/波场链TRC/以太链ETH智能合约代币流动性质押挖矿分红系统开发详细及逻辑
 用户合约在创建时,系统会自动创建一个新的数据库给该合约,所以不同的用户合约的状态数据以数据库进行区隔。在创建合约对应的数据库后,系统会执行合约init_contract函数中的SQL语句,包含非数据库事务的DDL语句,出于安全考虑,一个创建合约的交易或升级合约的交易将会被单独打包到区块中,不能与其他普通合约调用的交易一起打包。
|
存储 测试技术 区块链
波场链trc丨币安链bsc丨以太链eth开发案例,波场链trc丨币安链bsc丨以太链eth系统开发技术原理及分析
以太坊是一个全球性的、分布式的、开源的区块链,充当使用智能合约的去中心化应用程序(Dapps)的平台。您可以将以太坊视为一台世界计算机,它允许任何人出于任何目的构建、部署和使用应用程序,创建互联网的下一阶段,或许多人称之为Web 3.0的内容。