主页 > imtoken冷钱包app > 火币科普系列:兼容以太坊开发环境的开发者如何参与Heco的开发?

火币科普系列:兼容以太坊开发环境的开发者如何参与Heco的开发?

imtoken冷钱包app 2023-05-17 05:30:10

读取超时 = 30000000000

写超时 = 30000000000

空闲超时 = 120000000000

在配置中使用快速同步,如果需要完全同步,请删除此行:

同步模式 = "快速"

开始狂欢

· 配置.toml

#!/usr/bin/env 庆典

/数据/heco/geth-linux-amd64\

--config /data/heco/config.toml\

--logpath /data/heco/logs\

--verbosity 3 >> /data/heco/logs/systemd_chain_console.out 2>&1

如果需要作为存档节点使用,添加:

--同步模式满\

--gcmode 存档 \

所以:

#!/usr/bin/env 庆典

/数据/heco/geth-linux-amd64\

--config /data/heco/config.toml \

--logpath /data/heco/logs \

--同步模式满\

--gcmode 存档 \

--verbosity 3 >> /data/heco/logs/systemd_chain_console.out 2>&1

系统配置

[单元]

Description=huobismart链服务

[服务]

类型=简单

ExecStart=/bin/sh /data/heco/run.sh

重启=失败

RestartSec=5s

限制NOFILE=65536

[安装]

链上交互

Heco兼容以太坊的生态,支持以太坊所有的RPC API和DK

远程过程调用

RPC方法列表

例如:

curl -s -H 'content-type:application/json' -d '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' :8545

开发套件

使用 web3j 和 web3js 等以太坊 SDK 库进行开发。

const Web3 = require('web3')

异步函数 getChainId() {

const web3 = new Web3('https://http-mainnet.hecochain.com')

让 chainId = await web3.eth.getChainId()

console.log(`chain id: ${chainId}`)

返回链号

}

const Web3Accounts = require('web3-eth-accounts')

让帐户 = new Web3Accounts().create()

//不要在prd env上这样做

console.log(`账户生成。地址:${account.address},私钥:${account.privateKey}`)

const Web3 = require('web3')

异步函数传输(fromAccount,to,value){

const web3 = new Web3('https://http-mainnet.hecochain.com')

让 chainId = await web3.eth.getChainId()

让 nonce = await web3.eth.getTransactionCount(fromAccount.address)

让 gasPrice = await web3.eth.getGasPrice()

让无符号= {

发件人:发件人地址,

到,

值:web3.utils.numberToHex(web3.utils.toWei(value, 'ether')),

汽油价格,

随机数,

链号,

}

unsigned.gas = await web3.eth.estimateGas(unsigned)

让 signed = await fromAccount. signTransaction(未签名)

回签

}

合同

Heco 使用 EVM 来执行合约。

混音

Remix IDE 是一个开源的 Web 和桌面应用程序。 它促进了快速的开发周期,并具有丰富的插件集和直观的图形用户界面。 Remix用于合约开发的全过程,也是学习和教授合约开发的小天地。

以太坊开发区块链_以太坊的开发价格_以太坊生态开发

在文件资源管理器中创建一个新文件。 右侧编辑合约信息。

以太坊的开发价格_以太坊开发区块链_以太坊生态开发

编译合约

1.点击编译器按钮切换界面

2.选择要编译的合约

3.设置编译标志

4.点击编译按钮

以太坊开发区块链_以太坊的开发价格_以太坊生态开发

通过 MetaMask 等钱包将合约部署到区块链。

1、在MetaMask中设置网络信息:

以太坊的开发价格_以太坊生态开发_以太坊开发区块链

2. 返回混音。

以太坊的开发价格_以太坊生态开发_以太坊开发区块链

合约可以通过MetaMask部署在链上

使用 truffle 编译和部署合约。

·

· 安装节点。

· 安装松露

npm 安装 -g 松露

安装 truffle 版本后运行。 如果命令行显示如下信息,则安装成功。

松露 v5.1.36(核心:5.1.36)

Solidity v0.5.16 (solc-js)

节点 v10.22.1

Web3.js v1.2.1

· 创建项目

首先,为项目创建一个文件夹。

mkdir 示例

例子

然后以太坊的开发价格,通过truffle初始化项目

松露初始化

初始化完成后,工程中会生成如下文件结构。

|-- contracts//合同文件夹

|-- migrations//部署脚本文件夹

|-- test//测试脚本文件夹

|--truffle-config.js //松露配置文件

· 配置truffle信息

const HDWalletProvider = require('@truffle/hdwallet-provider');

const fs = require('fs');

const mnemonic = fs.readFileSync(".secret").toString().trim();

模块.exports = {

网络:{

测试网:{

provider: () => new HDWalletProvider(mnemonic, 'https://http-testnet.hecochain.com'),

网络 ID:256

},

主网:{

provider: () => new HDWalletProvider(mnemonic, 'https://http-mainnet.hecochain.com'),

网络编号:128

}

},

// 在这里设置默认的 mocha 选项,使用特殊的记者等。

摩卡:{

//超时:100000

},

// 配置你的编译器

编译器:{

解决方案:{

// version: "0.5.1", // 从 solc-bin 中获取准确的版本(默认:truffle 的版本)

// docker: true, // 使用你在本地安装的“0.5.1”(默认值:false)

// 设置:{// 有关优化和 evmVersion 的建议,请参阅 solidity 文档

// 优化器:{

//启用:假,

// 运行:200

// },

// evmVersion: "拜占庭"

// }

},

},

};

C 创建合约 将自定义合约放入contracts文件夹,修改文件夹下的部署脚本migrations。

· 部署合约

松露迁移——网络测试网

输出如下。

2_example_migration.js

========================

部署“ExampleToken”

----------------------

> 交易哈希:0x91e50594a63bc6f4c299f3f445868571678be306b835bddce6dff5c7a5ddf9dc

> 块:2秒:4

> 合约地址:0x54D2049715FC8De1361D7350de90eb05F0f6CA84

> 块号:375304

> 区块时间戳:1608016637

> 帐户:0x03D32B774295D740ffEe43b20fcC0a53acC576e6

> 余额:878.909609236165318643

> 使用的气体:1056044 (0x101d2c)

> 汽油价格:20 gwei

> 发送的值:0 ETH

> 总成本:0.02112088 ETH

> 保存迁移到链。

> 保存工件

--------------------------------------

> 总费用:0.02112088 ETH

概括

=======

> 总部署:1

> 最终费用:0.02112088 ETH

最后,合约部署完成。

图节点

Graph Node 是一种使用 GraphQL 在以太坊和 IPFS 上快速构建分布式应用程序 (DAPP) 的协议。

接下来的操作仅供参考,作为简单的设置教程。

为了方便起见以太坊的开发价格,我们使用官方的 docker compose 进行节点、数据库和 IPFS 的部署。

请注意docker-compose.yml中ethereum字段的值被HECO的节点连接信息替换。

图节点:

图片:图形协议/图形节点

端口:

- '8000:8000'

- '8001:8001'

-'8020:8020'

-'8030:8030'

- '8040:8040'

取决于:

- IPFS

-postgres

环境:

postgres_host: postgres

postgres_user:图节点

postgres_pass: 让我进来

postgres_db:图节点

ipfs: 'ipfs:5001'

ethereum: 'mainnet::8545' #replaced with heco rpc info

RUST_LOG:信息

注意:连接到graph-node的节点必须是archive模式(启动节点时加上flags --syncmode full --gcmode archive),建议每个用户搭建自己的RPC节点。

各位网友根据自己的情况来写,以下内容可以作为参考:

将写好的子图打包构建成wasm文件,然后部署到图节点上。 具体命令可以在上面的示例项目代码中找到。

部署后,可以使用 GraphQL 请求数据