• 以太坊学习笔记(五)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、创建部署交易、发送部署交易等。这里通过交易的一步一步进行,会对以太坊的交易、合约、账户等有个形象理解,这里不一一列举。

  • 相关阅读:
    Opencv中的GrabCut图像分割
    ChatGPT-GPT4:将AI技术融入科研、绘图与论文写作的实践
    金某OA协同办公管理系统存在任意文件下载漏洞分析 CNVD-2021-43036
    机器视觉软件破解的背后是道高一尺,魔高一丈
    汽车行业分论坛 | 让数据行驶在“安全道”
    selenium xpath定位
    Ngnix 部署 结束顽固进程
    Android Kali NetHunter免root安装
    CP AUTOSAR标准之CANInterface(AUTOSAR_SWS_CANInterface)(更新中……)
    java-net-php-python-2020SSM大学生作业管理系统演示录像计算机毕业设计程序
  • 原文地址:https://blog.csdn.net/yunlilang/article/details/125524198