背景
自己之前联盟链做的比较多,联盟链主要面向机构,例如供应链、贸易等场景。最近随着web3.0的火热,开始关注这方面的技术,一句话来讲,web3.0是一种去中心化的架构,让用户掌握主动权。现阶段,中心化互联网架构优缺点很明显,中心化的机构控制着用户的所有,假如一天阿里跑路了,怎么办?对用户来讲是灾难,很多应用部署在云上。最近郑州红码事件,也充分表明了中心化架构的缺点,中心作恶难以防范。
本文主要记录dapp开发的相关准备,这里基于以太坊,当然dapp不局限于以太坊。
开发环境
(一)采用remix ide
1、remix ide: 打开https://remix.ethereum.org即可用
2、Ganache安装,这个是以太坊模拟器,开发时可以连上进行调试,没有必要构建自己本地私链,能够节省开发时间
3、contract demo 采用自带的storage.sol:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
4、编译 ide上点击标红部分即可编译 5、部署 按照标红部分配置以太坊环境,这里连接ganache模拟器提供的模拟链,选择账户,点击deploy即可 6、运行合约 store num=100, retrieve获取为100
(二)采用truffle框架
采用truffle同样可以实现合约的编译,部署 1、安装truffle 2、安装vscode及插件solidity
3、truffle init 4、truffle create contract demo 5、truffle create contract demotest 6、truffle compile -all 7、部署truffle migrate,部署时需要先配置测试链环境 truffle-config.js:
development: {
host: "127.0.0.1",
port: 7545,
network_id: "5777",
}
8、交互 truffle console
(三)通过node控制台
以上两种开发环境,在合约编译,部署等步骤已经封装好了,实际上以太坊的部署主要有读取合约内容、通过solc编译器进行编译、获取abi\bytecode、创建部署交易、发送部署交易等。这里通过交易的一步一步进行,会对以太坊的交易、合约、账户等有个形象理解,这里不一一列举。
|