在以太坊主网上留下不可磨灭的印记

一、前言

从我开始接触区块链以来,我一直在思考链上的数据到底是什么。因此,我在交易所购买了比特币(BTC)和以太坊(ETH),以体验真实的区块链网络。但比特币网络只能记录转账信息,而以太坊具备图灵完备性,可以利用其平台进行去中心化应用(DApp)的开发。之前一直陷于技术问题,不过好在现在具备了这样的能力。

我想做的事情就是在以太坊网络上留下不可磨灭的名字,任何人可以调用但不可以修改。

二、成果

访问网站:https://hiwcq.com

源代码:blockchain: 第一个web3项目

三、实现步骤

1.  准备与合约交互的地址和ABI

2. 准备好工具和以太坊服务商,由前端去调用

3. 使用nginx将前端部署在服务器上

智能合约

首先将智能合约部署在以太主网上,合约很简单,主要想体验流程。

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.0;
contract Hello{
    string private name = unicode"hello 商务";
    uint256 private blockNumber;
    uint256 private deploymentTimeStamp;
    constructor() {
        blockNumber = block.number;
        deploymentTimeStamp = block.timestamp;
    }
    function getName() public view returns(string memory) {
        return name;
    }
    function getBlockNumber() public view returns(uint256) {
        return blockNumber;
    }
    function getTimeStamp() public view returns(uint256) {
        return deploymentTimeStamp;
    }
}

提示:想要在以太主网上部署合约最好是在北京时间的下午部署,因为下午时间对应的美国凌晨,那时需要的gas费用比较少,我部署的这份简单合约就花了30左右的人民币๐·°(৹˃̵﹏˂̵৹)°·๐。也可以部署在测试网上比如Goerli,Sepolia,只不过测试网更新换代速度比较快。

我的合约地址:0x2B0C18a10241434883bC290c1818a84fc4b6F852

准备好合约之后可以在以太主网上查看合约        
以太主网:https://etherscan.io/icon-default.png?t=N7T8https://etherscan.io/

并获取到与合约交互的地址和ABI

准备工具和API接口

与合约交互现在比较流行的是ethers.js,web3.js,我采用的是web3.js

提供以太坊数据的服务商有Infura、Alchemy等,我这里使用的是Infura

服务器设置

现在有了代码,有了API接口就可以调用以太坊获取链上数据并将其部署在服务器上。但是由于普通的用户不具备访问以太坊网络的条件。所以说要先让自己的服务器能够访问以太坊网络(这一步特别麻烦,到最后我换了香港地域的服务器),再使用nginx做反向代理,使前端用户访问nginx代理服务器,再由服务器转发访问Infura接口,就大功告成了。

结语

其中有很多的细节并没有提到,比如如何设置https加密访问,nginx如何做反向代理等,虽然我在nginx反向代理上花了很多时间,但我觉得这些都与主线无关。
接下来有时间或者有条件了之后把WeBASE-Front部署在服务器上试试。

猜你喜欢

转载自blog.csdn.net/m0_67362047/article/details/139049982