以太坊dapp 源代码

admin认证达人内容推荐员

币圈小编 2025-11-26

在区块链技术蓬勃发展的今天,去中心化应用(dApp)已成为其重要的组成部分之一。其中,基于以太坊平台的dApp开发尤为受到欢迎。本文将着重介绍一个简单的以太坊dApp源代码示例,并对其核心部分进行简要解析。

合约编写

首先,我们从智能合约开始。以Solidity语言编写如下简单合约:

```solidity

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

contract SimpleStorage {

uint256 storedData;

function set(uint256 x) public {

storedData = x;

}

function get() public view returns (uint256) {

return storedData;

}

}

```

此合约定义了一个简单的存储器,包含一个设置数值的`set()`函数和一个获取该值的`get()`函数。在以太坊区块链上部署这个智能合约后,用户可以通过调用这些功能来进行数据交互。

前端开发

接下来是前端部分,这需要与智能合约进行互动。这里使用Truffle框架来简化这一过程。首先安装依赖项:

```bash

npm install --save web3 truffle-hdwallet-provider

```

然后创建一个简单的HTML页面用于用户界面,并通过JavaScript连接至你的以太坊节点以及部署好的智能合约实例。

```html

Simple DApp

Welcome to Simple Storage DApp




```

在`app.js`中,我们使用web3库来连接以太坊网络并调用智能合约的方法。

```javascript

window.addEventListener('load', function() {

if (typeof web3 !== 'undefined') {

web3 = new Web3(web3.currentProvider);

} else {

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

}

var contractABI = [ ... ]; // 智能合约的ABI

var contractAddress = '...'; // 合约部署后的地址

var simpleStorageContract = new web3.eth.Contract(contractABI, contractAddress);

function store() {

var numberToStore = document.getElementById('number').value;

simpleStorageContract.methods.set(numberToStore).send({ from: "your_ethereum_address" }).then(() => retrieve());

}

function retrieve() {

return simpleStorageContract.methods.get().call((error, result) => {

if (error) console.error(error);

document.getElementById('output').innerText = `Stored Value: ${result}`;

});

}

});

```

上述代码片段展示了如何基于以太坊平台构建一个简单的dApp。从智能合约到前端交互,整个流程相对清晰明了,适合初学者快速上手并了解去中心化应用的基本原理和开发方法。