github: https://github.com/ethpandaops/dora
用例:https://beaconlight.ephemery.dev/
相比https://github.com/gobitfly/eth2-beaconchain-explorer 要简洁很多
github: https://github.com/ethpandaops/dora
用例:https://beaconlight.ephemery.dev/
相比https://github.com/gobitfly/eth2-beaconchain-explorer 要简洁很多
w3是您使用 Go 与以太坊集成的工具带。go‑ethereum它与 紧密相关,为使用RPC、ABI和EVM提供了一个符合人体工程学的包装器。
github: https://github.com/lmittmann/w3
w3的批量请求,
// 1. Connect to an RPC endpoint
client, err := w3.Dial("https://rpc.ankr.com/eth")
if err != nil {
// handle error
}
defer client.Close()
// 2. Make a batch request
var (
balance *big.Int
nonce uint64
)
if err := client.Call(
eth.Balance(addr, nil).Returns(&balance),
eth.Nonce(addr, nil).Returns(&nonce),
); err != nil {
// handle error
}
是通过使用CallCtx
func (c *Client) CallCtx(ctx context.Context, calls ...w3types.RPCCaller) error {
// no requests = nothing to do
if len(calls) <= 0 {
return nil
}
// create requests
batchElems := make([]rpc.BatchElem, len(calls))
var err error
for i, req := range calls {
batchElems[i], err = req.CreateRequest()
if err != nil {
return err
}
}
// invoke rate limiter
if err := c.rateLimit(ctx, batchElems); err != nil {
return err
}
// do requests
if len(batchElems) > 1 {
// batch requests if >1 request
err = c.client.BatchCallContext(ctx, batchElems)
if err != nil {
return err
}
} else {
调用go-ethereum->BatchCallContext 实现的
对于我们常规代码实现中,也可以参考实现
该项目是一个用 Go 语言构建的 API 网关,位于去中心化应用程序 (dApp) 的前端,管理对各种区块链网络的请求,目前支持以太坊和 Polygon。它包括基于 JWT 的身份验证、速率限制以及获取最新区块链区块编号的功能。
github: https://github.com/DamianFigiel/api-gateway-dapps-go
GasWait 是一个允许用户选择提交交易的理想时间的工具,通过在网络费用较低时提交来帮助用户节省 gas 费用。
Sedge是一款一键设置工具,用于 PoS 网络/链验证器和节点,完全用 Go 编程语言编写。Sedge根据所选客户端使用基于所需配置生成的 docker-compose 脚本来负责整个本地完整节点设置。以下列表显示了 Sedge 的一些用例:
文档:https://docs.sedge.nethermind.io/docs/intro
github: https://github.com/NethermindEth/sedge