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

一、前言

从我开始接触区块链以来,我一直在思考链上的数据到底是什么。因此,我在交易所购买了比特币(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部署在服务器上试试。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值