• 以太坊学习笔记(五)DAPP 开发环境


    背景

    自己之前联盟链做的比较多,联盟链主要面向机构,例如供应链、贸易等场景。最近随着web3.0的火热,开始关注这方面的技术,一句话来讲,web3.0是一种去中心化的架构,让用户掌握主动权。现阶段,中心化互联网架构优缺点很明显,中心化的机构控制着用户的所有,假如一天阿里跑路了,怎么办?对用户来讲是灾难,很多应用部署在云上。最近郑州红码事件,也充分表明了中心化架构的缺点,中心作恶难以防范。

    本文主要记录dapp开发的相关准备,这里基于以太坊,当然dapp不局限于以太坊。

    开发环境

    (一)采用remix ide

    1、remix ide: 打开https://remix.ethereum.org即可用
    remix

    2、Ganache安装,这个是以太坊模拟器,开发时可以连上进行调试,没有必要构建自己本地私链,能够节省开发时间

    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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    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",     // Localhost (default: none)
         port: 7545,            // Standard Ethereum port (default: none)
         network_id: "5777",       // Any network (default: none)
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    8、交互
    truffle console

    (三)通过node控制台

    以上两种开发环境,在合约编译,部署等步骤已经封装好了,实际上以太坊的部署主要有读取合约内容、通过solc编译器进行编译、获取abi\bytecode、创建部署交易、发送部署交易等。这里通过交易的一步一步进行,会对以太坊的交易、合约、账户等有个形象理解,这里不一一列举。

  • 相关阅读:
    双态IT乌镇大会 | 首批《数据中心业务连续性等级评价准则》试点单位将诞生
    【Android笔记25】Android中的动画效果之逐帧动画
    目标检测YOLO算法,先从yolov1开始
    企业级C++项目那些事(1):VS&Qt相关设置
    realtek高清晰音频管理器怎么关闭的方法
    新手学习STM32还是ESP32
    轮式装载机铲斗模拟仿真
    mysql基础
    JS的执行上下文,变量声明提升,函数声明提升
    使用sentinel实现熔断限流——微服务总结(四)
  • 原文地址:https://blog.csdn.net/yunlilang/article/details/125524198