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

  • 相关阅读:
    Word控件Spire.Doc 【表单域】教程(五):如何在 C# 中更新 Ask 字段
    95倒计时自律习惯养成计划打卡-day5
    【AI实用技巧】GPT写sql统计语句
    vue3生命周期源码详解
    黑马Java笔记第一讲—java基础
    中小型企业云存储选型指南:要点与建议
    提高尼日利亚稻米产量 丰收节贸促会:国稻种芯百团计划行动
    7.Xaml Image控件
    Go基本数据类型
    Redis 设置密码
  • 原文地址:https://blog.csdn.net/yunlilang/article/details/125524198