主页 > imtoken官网app下载 > 火币科普系列:兼容以太坊开发环境,开发者如何参与Heco开发

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

imtoken官网app下载 2023-02-19 07:40:15

读取超时 = 30000000000

写超时 = 30000000000

空闲超时 = 120000000000

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

同步模式 = "快速"

开始狂欢

#!/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=火币智能链服务

[服务]

类型=简单

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

重启=失败

RestartSec=5s

限制NOFILE=65536

[安装]

链上交互

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

以太坊(eth)挖矿教程_以太坊教程_以太坊为什么叫以太坊

远程过程调用

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('#39;)

让 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('#39;)

让 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)

以太坊教程_以太坊为什么叫以太坊_以太坊(eth)挖矿教程

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

回签

}

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

以太坊为什么叫以太坊_以太坊(eth)挖矿教程_以太坊教程

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

以太坊为什么叫以太坊_以太坊(eth)挖矿教程_以太坊教程

编译合约

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

2.选择要编译的合约

3.设置编译标志

以太坊为什么叫以太坊_以太坊(eth)挖矿教程_以太坊教程

4.点击编译按钮

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

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

以太坊教程_以太坊(eth)挖矿教程_以太坊为什么叫以太坊

2. 返回混音。

• 切换环境

• 选择合同

• 单击部署按钮

以太坊(eth)挖矿教程_以太坊为什么叫以太坊_以太坊教程

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

松露

npm 安装 -g 松露

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

松露 v5.1.36(核心:5.1.36)

Solidity v0.5.16 (solc-js)

节点 v10.22.1

Web3.js v1.2.1

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

mkdir 示例

例子

以太坊(eth)挖矿教程_以太坊教程_以太坊为什么叫以太坊

然后,通过truffle初始化项目

松露初始化

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

|-- contracts //合约文件夹

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

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

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

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

const fs = require('fs');

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

模块.exports = {

网络:{

测试网:{

提供商: () => new HDWalletProvider(mnemonic, '#39;),

网络 ID:256

},

主网:{

提供商: () => new HDWalletProvider(mnemonic, '#39;),

网络编号:128

}

},

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

摩卡:{

//超时:100000

},

// 配置你的编译器

编译器:{

解决方案:{

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

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

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

// 优化器:{

以太坊教程_以太坊(eth)挖矿教程_以太坊为什么叫以太坊

//启用:假,

// 运行:200

// },

// evmVersion: "拜占庭"

// }

},

},

};

松露迁移——网络测试网

输出如下。

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

以太坊为什么叫以太坊_以太坊(eth)挖矿教程_以太坊教程

> 最终成本:0.02112088 ETH

最后,合约部署完成。

图节点

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

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

设置图形节点

为方便起见,我们使用官方进行节点、数据库和 IPFS 部署。

请注意,ethereum 字段的值将被 docker-compose.yml 中 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 的使用 部署后,可以使用 GraphQL 请求数据

以太坊教程_以太坊(eth)挖矿教程_以太坊为什么叫以太坊