您正在查看: Ethereum 分类下的文章

Geth Clique共识下miner显示0x地址

问题

在Clique共识下,查看block

eth.getBlockByNumber(1000);

返回数据中miner为0x地址

miner: "0x0000000000000000000000000000000000000000",

解决

对于Clique共识查看某个区块的miner,通过getSignersAtHash查看

clique.getSignersAtHash("0xec6058d9364569e92a7e7c19889fa4daf86111ddf29dfcd6993be697b1cdd553")
["0x0eb7365be3c1fa53fe6ad8080c723def2a4cbb9f", "0x45d959f955e6ba85c03d1131e8e6efbf7061b6ec", "0x48f58ba03e2bfe0f84813184ba605c530ce333d5", "0x57fa14bde7440f47f3a9ddc854c1281d1b7a2fc5", "0x5cd8f88f97ead6f84957cf5a2c80db33da53a8c7"]

对于blockscout浏览器显示0x问题,需要首次启动前,修改docker-compose/envs/common-blockscout.env

BLOCK_TRANSFORMER=clique

引用

https://github.com/blockscout/blockscout/issues/1990
https://github.com/ethereum/go-ethereum/issues/15651

以太坊智能合约事件索引器

eth-事件索引器

以太坊智能合约事件索引器

  • 使用 Postgres 数据库 GoEthereum 客户端/SDK 和 Infura 作为节点进行基本智能合约事件索引。

先决条件

  • Infura 帐户(API 密钥、网络端点 WSS/HTTPS)
  • Docker
  • 创建 .env 文件并使用 .env_tmpl 填充配置数据

安装/使用 Docker 运行

在项目文件夹中运行命令:
docker-compose up --build

安装 不使用 Docker 但使用已安装的 Postgress

  • 安装 Go(golang)
  • 从 scripts/db 文件夹运行 psql 脚本
  • 运行命令根项目文件夹
    go run main/main.go

数据库清理

  • 从根项目文件夹中删除“db-data”文件夹

使用方法 - 来自 Postman

  • GET: /api/events/:address
  • GET: /api/indexed/:id
  • POST: /api/events/add/:address

RESTful API 设计服务来管理以太坊网络中的交易

以太坊交易管理器

任务描述

开发一个 RESTful API 服务,用于管理以太坊区块链(goerli 测试网络)上的交易,考虑高负载。

要求

该API应该支持以下操作:

  • 发送新交易(POST /交易)

  • 检索以太坊地址的余额 (GET /balances/{address})

  • 通过哈希检索交易信息 (GET /transactions/{hash})

    • hash(交易哈希)
    • 来自(发件人地址)
    • 至(收件人地址)
    • 值(发送的 Eth 数量)
    • 时间戳
  • 使用 Ethers.js(用于 Node.js)或 go-ethereum(用于 Go)与以太坊(Goerli)区块链进行交互。

  • 实现地址余额缓存以减少 RPC 负载(可以使用任何缓存解决方案,例如 Redis 或内置缓存)。

  • 通过最小化请求数量来优化 RPC 交互。

  • 提供负载测试结果,证明该服务每秒至少处理 100 个请求的能力。

  • 在 GitHub 上发布源代码。

  • 可选但加分项:Dockerfile + 在 Docker 和/或 Docker 镜像中运行的说明。

https://github.com/alewkinr/eth-trx-manager/tree/main