首页>资讯>正文

以太坊开发入门,从零开始构建你的第一个DApp

2026-06-03
OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册

币安app

binance币安交易所app

币安交易所app是全球排名第一的虚拟货币交易所,注册领取盲盒礼包!

APP下载 官网注册

以太坊开发入门,从零开始构建你的第一个DApp

以太坊开发入门,从零开始构建你的第一个DApp

以太坊作为全球领先的智能合约平台,不仅仅是一种加密货币,更是一个去中心化的应用(DApp)生态系统,它为开发者提供了强大的工具和框架,使得构建和部署去中心化应用成为可能,本教程将带你踏以太坊开发的学习之旅,从基础概念到实践操作,一步步引导你构建你的第一个DApp。

以太坊开发基础:你需要了解什么?

在开始编码之前,我们需要理解几个核心概念:

  1. 区块链与以太坊:区块链是一种分布式账本技术,以太坊则是基于区块链技术的开源平台,它允许开发者编写和部署智能合约。
  2. 智能合约:智能合约是运行在以太坊虚拟机(EVM)上的自执行代码,它们在满足预设条件时自动执行合约条款,是不可篡改和透明的,可以理解为“在区块链上运行的自动化的、可信任的程序”。
  3. 以太坊虚拟机(EVM):EVM是以太坊的核心,它是一个图灵完备的虚拟机,能够执行任何复杂的智能合约代码,所有兼容以太坊的区块链都能运行EVM,确保了生态的互操作性。
  4. 账户(Accounts):以太坊有两种账户:外部账户(EOA,由用户私钥控制,如你的钱包)和合约账户(由代码控制),账户之间通过交易进行交互。
  5. Gas:为了防止网络滥用和补偿计算资源,以太坊网络中的每笔操作和智能合约执行都需要支付Gas,Gas是衡量计算工作量的单位,用ETH支付。
  6. Solidity:是最流行的智能合约编程语言,其语法类似于JavaScript,我们将主要使用Solidity来编写合约。

开发环境搭建

准备好开发环境是以太坊开发的第一步:

  1. 安装Node.js和npm:Node.js是一个JavaScript运行时,npm是Node.js的包管理器,从官网nodejs.org下载并安装LTS版本。
  2. 安装Truffle Suite:Truffle是以太坊最受欢迎的开发框架之一,它提供了开发、测试和部署智能合约的一整套工具。
    npm install -g truffle
  3. 安装Ganache:Ganache是一个个人以太坊区块链,用于快速部署和测试合约,它提供了一个图形界面,可以实时查看交易和合约状态,你可以从Ganache官网下载,或者使用其命令行版本。
    npm install -g ganache-cli
  4. 安装MetaMask:MetaMask是一个浏览器插件钱包,可以让你与以太坊区块链(包括测试网络)进行交互,管理账户,并与DApp进行交互,从MetaMask官网安装并设置。
  5. 代码编辑器:推荐使用Visual Studio Code(VS Code),并安装Solidity相关插件,如“Solidity by Juan Blanco”。

创建你的第一个以太坊项目(使用Truffle)

  1. 初始化项目: 创建一个新的项目文件夹,并在其中初始化Truffle项目:

    mkdir my-first-dapp
    cd my-first-dapp
    truffle init

    这会生成一些标准目录结构:contracts/(存放智能合约)、migrations/(部署脚本)、test/(测试文件)等。

  2. 编写智能合约: 打开contracts目录,删除默认的Migrations.sol,创建一个新的合约文件,例如SimpleStorage.sol

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    contract SimpleStorage {
        uint256 private storedData;
        function set(uint256 x) public {
            storedData = x;
        }
        function get() public view returns (uint256) {
            return storedData;
        }
    }

    这个合约非常简单,包含一个set函数用于存储一个无符号整数,和一个get函数用于读取这个整数。

  3. 编写迁移脚本: 打开migrations目录,创建一个新的迁移脚本文件,例如2_deploy_simple_storage.js

    const SimpleStorage = artifacts.require("SimpleStorage");
    module.exports = function (deployer) {
        deployer.deploy(SimpleStorage);
    };

    这个脚本告诉Truffle如何部署我们的SimpleStorage合约。

  4. 启动Ganache: 打开Ganache,确保选择“QUICKSTART”模式,它会启动一个本地私有区块链,并提供你10个测试账户,每个账户都有100个测试ETH。

  5. 配置Truffle连接Ganache: 在项目根目录下创建或修改truffle-config.js文件(如果truffle init没生成的话),配置网络以连接到Ganache:

    module.exports = {
      networks: {
        development: {
          host: "127.0.0.1",     // Localhost (default: none)
          port: 7545,            // Standard Ethereum port (default: none)
          network_id: "*",       // Any network (default: none)
        },
      },
      compilers: {
        solc: {
          version: "0.8.0",    // Fetch exact version from solc-bin (default: truffle's version)
        }
      }
    };

    注意端口号(7545)要与你Ganache中显示的端口一致。

  6. 编译合约: 在项目根目录的终端中运行:

    truffle compile

    如果成功,你会在build/contracts目录下看到编译后的合约JSON文件。

  7. 部署合约: 运行以下命令部署合约到Ganache:

    truffle migrate --network development

    你会看到Ganache界面中出现了新的交易记录,部署成功后,build/contracts/SimpleStorage.json中会包含合约的部署地址。

与你的智能合约交互

  1. 创建前端界面: 在项目根目录下创建一个src文件夹,用于存放前端代码,在src中创建index.htmlapp.js

    index.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Simple Storage DApp</title>
        <script src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js" type="application/javascript"></script></head>
    <body>
        <h1>Simple Storage DApp</h1>
        <div>
            <label for="valueInput">Set Value:</label>
            <input type="number" id="valueInput" placeholder="Enter a number">
            <button onclick="setValue()">Set</button>
        </div>
        <div>
            <button onclick="getValue()">Get Value</button>
            <p>Current Value: <span id="currentValue">0</span></p>
        </div>
        <script src="app.js"></script>
    </body>
    </html>

    app.js:

    let contract;
    const contractAddress = "YOUR_CONTRACT_ADDRESS_HERE"; // 替换为部署合约时得到的地址
    const contractABI = [/* 这里粘贴SimpleStorage的ABI */]; // 稍后从编译后的JSON中获取
    // 初始化 ethers
    const provider = new ethers.providers.Web3Provider(window.ethereum);
    const signer = provider.getSigner();
    async function init() {
        // 请求用户授权连接钱包
        await window.ethereum.request({ method: 'eth_requestAccounts' });
        // 连接到合约
        contract = new ethers.Contract(contractAddress, contractABI, signer);
        getValue();
    }
    async function setValue() {
        const valueInput = document.getElementById("valueInput");
        const value = valueInput.value;
        if (value) {
            try {
                const tx = await contract.set(value);
                await tx.wait();
                alert("Value set successfully!");
                getValue();
            } catch (error) {
                console.error(error);
                alert("Error setting value");
            }
        }
    }
    async function getValue() {
        try {
            const value = await contract.get();
            document.getElementById("currentValue").textContent = value.toString();
        } catch (error) {
            console.error(error);
            alert("Error getting value");
        }
    }
    // 页面加载完成后初始化
    window.addEventListener('load', init);

    注意:你需要将YOUR_CONTRACT_ADDRESS_HERE替换为实际部署的合约地址,并将contractABI替换为SimpleStorage.json中的abi数组,你可以从build/contracts/SimpleStorage.json中复制ABI。

  2. **启动前端

交易所关闭后,还能安全提币吗?关键看这几点

交易所关闭后,还能安全提币吗?关键看这几点 当加密货币交易所突然宣布关闭或停止服务时,“能否提币”成为用户最焦虑的问题,答案并非绝对,而是取决于交易所关闭的具体类型、准备情况及用户自身行动。 区分“暂停提币”与“永久关闭”:风险天差地别 交易所关闭通常分两种

以太坊挖矿入门指南,玩币族必读

以太坊挖矿入门指南,玩币族必读 随着区块链技术的不断发展,数字货币已经成为了全球投资的新宠,以太坊作为第二大加密货币,其独特的智能合约功能吸引了众多投资者和开发者的关注,对于许多初学者来说,如何参与以太坊挖矿仍然是一个谜,本文将为大家提供一个全面的以太坊挖矿

预测明天狗狗币行情走势,波动中藏机遇,理性应对是关键

预测明天狗狗币行情走势,波动中藏机遇,理性应对是关键 狗狗币(DOGE)作为最早诞生的“模因币”,其价格走势始终与市场情绪、社区热度及外部因素深度绑定,要预测明天的行情,需从短期催化剂、技术面及宏观环境三个维度综合分析,同时警惕加密货币市场固有的高波动性。 短期

探秘 OE 交易所的成立历程

探秘 OE 交易所的成立历程 在数字货币的浪潮中,交易所作为连接投资者与数字资产的桥梁,扮演着至关重要的角色,OE 交易所凭借其独特的优势和创新的服务模式,逐渐在众多交易所中脱颖而出,对于许多投资者来说,OE 交易所究竟是哪年成立的,仍然是一个充满好奇的问题,我们就

云币网 注册获取钱包,云币网钱包怎么样申

一、云币网钱包怎么样申云币网钱包怎么申请云币网是一家数字资产交易平台,提供数字货币交易、数字资产钱包等服务。下面是关于云币网钱包的申请流程:1.首先,进入云币网的官方网站并注册一个账号。2.注册完成后,在网站上登录账号并进入用户中心,选择“我的钱包”。3.点击“

2024年11月05日 T币今日行情走势¥0.14

1.T币价格:$0.02 2.2024年11月05日 T币今日行情走势0.14币价格:0.14 3.24H最高:0.14 4.24H成交额:1.29亿 5.最大发行量:110.35亿 6.24H换手:9.49% 7.24H最低:0.13 8.24H成交量:9.46亿 9.当前发行量:110.35亿 10.24H波幅:5.41% 11.历史最高:1.61 12.最大市值:15.

加密货币交易所多少钱,现在一个比特币多少钱

一、区块链一条数据多少钱,开发区块链数字货币要多少钱比特币———一个币值8万多元人民币接触过数字货币的人对比特币都不陌生,它是数字货币的祖宗,如果你在2010年的时候用三美元买1万个比特币留到现在,那么现在你的身价是8亿多人民币,是不是不可思议区块链技术被称为是继

矿机挖矿教程,比特币挖矿教程

一、家用电脑挖矿攻略_个人电脑如何挖矿精简教程家用电脑挖比特币的可行性越来越低。最初,人们可能希望通过家用电脑参与比特币挖矿,但随着比特币价格的飙升和挖矿难度的提高,普通电脑的性能已经无法满足现在的需求。专业的矿机和高昂的电费使得家用电脑挖矿变得不经济,甚

去中心化的狗狗币钱包,守护你的数字资产自主权

去中心化的狗狗币钱包,守护你的数字资产自主权 在加密货币的世界里,“去中心化”早已不是新鲜词,但当它与“狗狗币”这个曾因“狗狗模因”爆火、如今已成为全球主流加密货币之一的资产结合时,便为普通用户打开了一扇通往“金融自主”的大门,去中心化的狗狗币钱包(简称“狗

OYI体育全站APP官方下载安装指南,畅享极致体育盛宴

OYI体育全站APP官方下载安装指南,畅享极致体育盛宴 在数字时代,体育迷们早已不满足于通过传统渠道关注赛事,而是渴望随时随地获取最新资讯、观看高清直播、参与互动讨论,OYI体育全站APP作为一款集赛事直播、数据统计、社区互动于一体的综合性体育平台,正成为越来越多用户的

TSC交易所APP,数字资产交易的新一代枢纽

TSC交易所APP,数字资产交易的新一代枢纽 在数字经济蓬勃发展的今天,数字资产交易已成为全球投资者关注的焦点,作为行业内的创新力量,TSC交易所APP凭借其技术实力与用户友好设计,正逐步成为连接投资者与数字资产市场的重要桥梁。 TSC交易所APP的核心优势在于其强大的功能模

狗狗币真值钱吗?从网红币到价值迷思的深度解析

狗狗币真值钱吗?从网红币到价值迷思的深度解析 “狗狗币真值钱吗?”这个问题,从2021年马斯克“喊单”时的狂欢,到如今市场回归理性,始终是加密货币圈的热议焦点,要回答这个问题,我们需要抛开“一夜暴富”的幻想,从底层逻辑、市场现实和长期价值三个维度拆解。 从“玩笑

几年前,狗狗币的价格,从玩笑币到现象级狂热的轨迹

几年前,狗狗币的价格,从玩笑币到现象级狂热的轨迹 在加密货币的叙事里,狗狗币(DOGE)的价格曲线堪称一部“过山车”式的传奇,若将时钟拨回几年前——具体而言是2020年至2021年初——这个最初以“梗”为起点的小众币种,正经历着从“无人问津”到“全民狂欢”的剧变,而彼时

ARENA币,Web3.0时代的去中心化生态价值载体

ARENA币,Web3.0时代的去中心化生态价值载体 在区块链技术从“信息互联网”向“价值互联网”演进的浪潮中,ARENA币作为新兴的数字资产,正以其独特的生态定位和技术架构,成为Web3.0领域备受关注的价值载体,ARENA币并非简单的投机工具,而是围绕去中心化应用(DApp)生态、数

狗狗币核心钱包同步,狗币,达世币跟最近的诚信币有什么不同

一、比特、以太、狗狗、头寸管理、趣步赞丽、等项目简短评析5.5我无所谓,被骂对我来说不痛不痒甚至每天看评论时候都觉得好笑,因为大家也都知道,我根本不玩这些项目,在我眼里除了大饼以太没有其他的,你们赚的开心就继续赚,有些问题你们装看不见,那么也无所谓,反正问题

2024年11月02日 RON币今日行情走势¥9.88

1.RON币价格:$1.39 2.2024年11月02日 RON币今日行情走势9.88币价格:9.88 3.24H最高:10.59 4.24H成交额:1.39亿 5.最大发行量:10.0亿 6.24H换手:3.92% 7.24H最低:9.88 8.24H成交量:1406.59万 9.当前发行量:10.0亿 10.24H波幅:7.19% 11.历史最高:31.63 12.最大市值

狗狗币可以刷礼物吗?真相与风险解析

狗狗币可以刷礼物吗?真相与风险解析 近年来,狗狗币凭借“ meme 币之王”的标签和马斯克的“带货”效应,成为加密货币市场中的热门话题,不少用户好奇:狗狗币可以用来“刷礼物”吗?这个问题需要从技术可行性、平台支持及风险三个层面来解答。 从技术层面看,狗狗币具备“刷

TTN币未来潜力剖析,机遇与挑战并存

TTN币未来潜力剖析,机遇与挑战并存 在加密货币市场这个充满机遇与风险的领域,各种新兴项目层出不穷,TTN币作为其中之一,自然也吸引了众多投资者的目光,TTN币究竟有没有潜力?这是一个需要从多个维度进行深入剖析的问题,本文将尝试从项目背景、技术特点、应用场景、市场表

下载中东交易所APP,开启您的中东投资新机遇

下载中东交易所APP,开启您的中东投资新机遇 在全球经济多元化发展的浪潮中,中东地区凭借其能源优势、战略位置及经济改革红利,正成为全球投资者瞩目的新兴市场,想要把握这一投资风口?下载中东交易所APP,让您一键接轨中东资本市场,享受便捷、安全、高效的交易体验。 中东

Ouyi交易所,深度布局Web3.0,打造下一代价值交换的超级入口

Ouyi交易所,深度布局Web3.0,打造下一代价值交换的超级入口 随着数字经济的浪潮席卷全球,互联网正经历着从Web2.0向Web3.0的范式转移,在这个以去中心化、用户主权和价值互联网为核心的新时代,传统的中心化交易平台(CEX)面临着前所未有的挑战与机遇,在此背景下,Ouyi交易