在区块链世界中,身份管理一直是核心挑战之一。传统互联网通过中心化平台(如社交媒体账号)来管理用户身份,而区块链的匿名性反而加剧了身份验证和声誉构建的复杂性。
尽管早期以太坊社区提出了多个身份协议(如 ERC-725、ERC-1056),但它们各自存在互操作性差、功能局限、扩展性不足等问题。
Tag: ethereum
概要
ERC‑1056(Ethereum Lightweight Identity)是一个针对以太坊上轻量级身份管理的ERC标准,旨在提供一个通用的身份注册表,用于管理身份的公钥代理(delegates)和属性(attributes),并实现完全的W3C去中心化标识符(DID)兼容性。它的核心设计目标是让身份创建“即插即用”且零成本(无需额外合约部署或Gas花费),同时支持离线环境下的身份管理,并允许在不改变主标识符的情况下对密钥进行安全轮换。本文将分章节详细解读其动机、核心概念、规范细节、实现方式、安全考量及生态展望。
一、环境准备
- 安装Docker
Kurtosis依赖Docker作为底层容器运行时。需根据操作系统安装Docker并启动服务:$ systemctl start docker # 启动Docker $ systemctl enable docker # 设置开机自启 - 安装Kurtosis CLI
根据操作系统选择安装命令:- MacOS:
$ brew install kurtosis-tech/tap/kurtosis-cli - Ubuntu/Debian:
$ echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list $ sudo apt update && sudo apt install kurtosis-cli - 验证安装:
$ kurtosis version
- MacOS:
二、部署默认配置的以太坊网络
- 启动单节点测试链
使用默认配置快速启动一个本地以太坊网络(包含执行层和共识层客户端):$ kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-packageenclave参数指定隔离环境名称(如my-testnet)。- 默认使用Geth(执行层)和Lighthouse(共识层)客户端。
- 验证启动成功
成功后会输出各服务状态,例如:Successfully added 1 EL participants Service 'el-1-geth-lighthouse' added with service UUID...
三、自定义配置部署
- 创建配置文件
编写network_params.yaml文件,定义网络参数。例如:participants: - el_type: geth cl_type: lighthouse network_params: network: "holesky-shadowfork" # 支持Shadowfork模式 persistent: true # 启用持久化存储(Shadowfork必需) additional_services: - apache # 启用文件共享服务- 关键参数:
el_type/cl_type:指定执行层(Geth、Nethermind等)和共识层客户端(Lighthouse、Teku等)。network:支持公共测试网(如holesky)或Shadowfork(如holesky-shadowfork)。persistent:启用持久化存储,防止数据丢失。
- 关键参数:
- 运行自定义配置
$ kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file network_params.yaml
四、Kubernetes部署(可选)
- Kubernetes集群要求
- 推荐使用云服务(如AWS EKS、GCP GKE)或自建集群。
- 确保存储卷性能(通过
el_volume_size和cl_volume_size调整存储大小)。
- 调整容器调度策略
在network_params.yaml中定义Kubernetes容忍(Tolerations):participants: - el_type: reth cl_type: teku el_tolerations: # 覆盖全局配置 - key: "gpu-node" operator: "Exists" global_tolerations: - key: "node-role.kubernetes.io/master" effect: "NoSchedule"
五、管理与调试
- 访问服务日志
$ kurtosis service logs my-testnet el-1-geth-lighthouse - 下载创世文件
$ kurtosis files download my-testnet el-genesis-data ~/Downloads - 进入容器Shell
$ kurtosis service shell my-testnet el-1-geth-lighthouse
六、高级功能
- Shadowforking
通过配置文件模拟主网分叉环境:network_params: network: "mainnet-shadowfork-verkle" # Verkle树测试 electra_fork_epoch: 1 # 指定分叉区块 persistent: true - MEV-Boost集成
启用Flashbot的MEV基础设施:mev_params: mode: "full" # 或 "mock" 模拟模式 - 监控与工具
默认集成Prometheus、Grafana和Blobscan(用于分析EIP-4844 Blob交易)。
七、清理资源
$ kurtosis enclave rm -f my-testnet # 删除整个环境
$ kurtosis clean -a # 清理所有资源
注意事项
- 云环境部署:建议使用高性能存储(如SSD),避免因磁盘速度导致同步问题。
- 客户端兼容性:不同客户端(如Prysm)可能需要特定镜像或参数。
通过以上步骤,可以灵活部署一个多客户端、可观测性强的以太坊开发网络。更多配置细节可参考官方文档。
一、Kurtosis 核心价值
Kurtosis 是一款基于 Starlark 脚本语言的临时化包执行工具,专为开发者打造零配置的应用程序测试环境。其核心优势体现在:
在之前的文章中介绍了通过修改源码的方式来实现PoA共识下的出块奖励,在只有一个节点的情况下,这种方式并不会有什么问题;一旦有新的节点加入网络,那新增的节点就会卡在数据同步的阶段。那为什么会出现这种情况呢?
在之前的文章中,我们介绍了PoA Clique共识下新增验证者节点的操作步骤。本文将以一个示例来说明如何操作。
在前一篇文章中,我们介绍了PoA Clique共识下如何新增同步节点。本文将介绍如何在PoA Clique共识下新增验证者节点。
1. 背景
增加同步节点(Full Nodes)对于区块链网络,尤其是基于 PoA(Proof of Authority)Clique 共识机制的私链,具有重要意义。以下是增加同步节点的主要原因及其优势:
UUPSUpgradeable
UUPSUpgradeable 是 OpenZeppelin 提供的用于实现可升级合约的一种标准。UUPS 代表“Universal Upgradeable Proxy Standard”,是以太坊社区推动的一种可升级合约方式。与传统的代理模式相比,UUPS 提供了更为灵活和高效的合约升级机制。以下是关于 UUPSUpgradeable 的详细介绍:
随着区块链技术的快速发展,可升级智能合约成为开发者的重要需求。合约升级不仅需要保证业务逻辑的延续性,还需降低复杂度和成本。UUPS(Universal Upgradeable Proxy Standard)代理模式应运而生,它提供了一种轻量、灵活且安全的合约升级机制。
在与以太坊区块链进行交互时,特别是在发送交易时,你可能会遇到一个错误信息:replacement transaction underpriced。这个错误通常出现在试图替换已经在交易池中的交易时,新的交易的 gasPrice 太低。下面将解释为什么会出现这个错误,介绍它的背景,以及如何避免这个问题。
EIP-1559 是以太坊网络上的一项重要升级,它是 伦敦硬分叉(London Hard Fork) 的一部分,于 2021年8月5日 在以太坊主网生效。EIP-1559 引入了一种全新的 交易费用模型,旨在改善以太坊交易的 可预测性 和 效率,并通过 销毁一部分交易费用 来减少以太坊的 通货膨胀。
在使用以太坊节点进行 RPC 调用时,常常会遇到 only replay-protected (EIP-155) transactions allowed over RPC 的错误提示。这个错误通常出现在试图发送不符合 EIP-155 标准的交易时。本文将解释为什么会出现这个错误,同时还会简单介绍 EIP-155 标准以及它的背景。
1. Blockscout 简介
Blockscout 允许用户搜索交易、查看账户和余额、验证和与智能合约互动,并查看和与以太坊网络上的应用程序进行交互,包括许多分叉、侧链、L2 和测试网。
1. 出块奖励
出块奖励是指在区块链网络中,节点(如矿工或验证者)成功创建和添加一个新的区块到区块链上时所获得的奖励。这种奖励通常以加密货币的形式发放,目的是激励节点参与网络的维护和安全。
在以太坊开发生态系统中,Solidity 版本、Geth 版本 和 EVM(Ethereum Virtual Machine)版本 之间有密切的关系。理解它们的关系对于智能合约开发、部署和执行至关重要。以下是对这些版本关系的详细介绍:
多验证者节点部署
注意:本文档仅适用于POA共识的多验证者节点部署。 geth自1.14.x之后不再支持Clique共识,所以编译solidity合约时,evm最高只支持到London
1. 为什么要构建私链?
构建私链有多个理由,主要包括: