“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第 82 期,波卡的节点是支撑整个网络的关键,本文将介绍节点相关的基本信息以及基本的节点操作。此文包含有关运行 Parity Polkadot 客户端的基本信息。有很多方法可以获取 / 运行客户端,例如从源代码编译、在 Docker 中运行或下载二进制文件。本指南将始终将可执行文件称为 polkadot。
始终参考客户端的帮助文档中的 polkadot --help,以获取最新信息。其他客户端实施团队:随意为您的客户端制作带有说明(或说明链接)的此页面的 PR。
https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot
使用该 --chain 选项选择链。可以是 polkadot、kusama、westend、 rococo 或自定义链规范。默认情况下,客户端将启动 Polkadot。观看视频,学习单个代码库如何为四个不同的区块链提供支持, 以了解有关链的选择的内部工作原理的更多信息。相关视频内容:https://www.youtube.com/watch?v=i9vNCHz6wO4
归档节点不会删减任何区块或状态数据。使用 --pruningarchive 标注。某些类型的节点(如验证者)必须以归档模式运行。同样,每个区块中的所有事件(Event)都从状态中清除,因此如果你想存储事件,那么你将需要一个归档节点。
译者注:在区块链中,一个归档节点是指一个完全的节点,它会在本地完整地存储整个区块链的历史记录,并且可以提供完整的区块链数据查询服务。与之相对的是轻节点,轻节点只存储最新的区块数据,而不存储区块链的完整历史。归档节点相比轻节点来说,需要更多的存储空间和更高的带宽,因为它需要存储整个区块链的历史记录。然而,归档节点对于某些应用场景来说是非常有用的,比如需要对历史交易数据进行深入分析或者需要对过去某个时间点的状态进行验证等等。归档节点可以提供全面的查询服务,包括历史交易数据、智能合约状态以及历史事件等等。这些数据对于区块链的研究和分析非常重要。例如,研究人员可以利用归档节点进行数据分析,以了解不同的交易模式和趋势,而企业可以使用归档节点对历史交易数据进行审核,以确保其合规性。
https://www.youtube.com/watch?v=5LtcdBR9F40&list=PLOyWqupZ-WGuAuS00rK-pebTMAOxW41W8&index=6
要将区块导出到文件,请使用 export-blocks。以 JSON(默认)或二进制(--binary true)格式导出。polkadot export-blocks --from 0 <output_file>
Parity Polkadot 客户端实现了一个 Polkadot 主机和一个本地 Runtime。Runtime 必须编译为 WebAssembly 并存储在链上。如果客户端的 Runtime 规范与存储在链上的 Runtime 规范相同,则客户端将使用客户端二进制文件执行区块。否则,客户端将从链上执行 Wasm Runtime。
因此,在同步链时,客户端将使用其关联的 Wasm 二进制文件执行过去运行时的区块。此功能还允许无硬分叉升级:客户端可以在不更新客户端的情况下执行新的 Runtime。
Parity 的 Polkadot 客户端有两种 Wasm 执行方式,解释执行(默认)和编译执行。使用 --wasm-execution 设置执行 Wasm 时使用的首选方法。编译执行将运行得更快,尤其是在同步链时,但这是实验性的,可能会使用更多内存 /CPU。一个合理的折衷方案是用编译执行同步链,然后用解释执行重新启动节点。
Assets pallet 有自己的接口来处理资产。请参阅本文下面的集成部分,了解如何获取信息和构建交易。
/home/$USER/.local/share/polkadot/chains//. 您可以使用 --base-path 设置自定义路径。
https://wiki.polkadot.network/docs/learn-cryptographyhttps://docs.substrate.io/fundamentals/accounts-addresses-keys/#specialized-accounts
数据库存储区块和状态树(state trie)。如果您正在运行验证器节点,它还会存储 GRANDPA 预投票和预提交以及链下工作数据库。迁移验证器节点时要小心 ,以免模棱两可。如果你想在不重新同步的情况下启动一台新机器,你可以停止你的节点,备份数据库,然后将它移动到一台新机器上。
译者注:关于状态树(state trie)的意思:在区块链技术中,一个区块链网络中的每个节点都有一份完整的数据库,该数据库包含了整个区块链网络中的所有区块和账户状态数据。这个数据库通常被称为“区块链状态数据库”。“state trie”是这个状态数据库中的一部分,它是用于存储账户状态的一种数据结构。在区块链中,每个账户都有一个状态,包括账户余额、合约代码和其他与账户相关的信息。这些账户状态被存储在一个 Merkle 树结构中,这个 Merkle 树结构就是“state trie”。
要删除您的数据库并从创世区块重新同步,请运行 polkadot purge-chainParity 的 Polkadot 客户端有两种 Wasm 执行方式,解释执行(默认)和编译执行。使用 --wasm-execution 设置执行 Wasm 时使用的首选方法。编译执行将运行得更快,尤其是在同步链时,但这是实验性的,可能会使用更多内存 /CPU。一个合理的折衷方案是用编译执行同步链,然后用解释执行重新启动节点。
默认情况下,这是隐式的,但可以通过传递--databaseRocksDb标志来显式设置。在未来,建议切换到使用更快且更高效的ParityDb选项。在不同的数据库后端之间进行切换将需要重新同步。
如果您想测试 ParityDB,可以添加 --database paritydb 标志。
Web3 基金会维护 Polkadot Deployer,它允许您创建 Polkadot 节点的本地或远程云部署。有关说明,请参阅 README 文件。相关内容:https://github.com/w3f/polkadot-deployer验证者,请参阅验证者设置指南,以获取特定的部署验证者节点的信息。相关内容:https://wiki.polkadot.network/docs/maintain-guides-how-to-use-polkadot-validator-setup
您可以使用 websocat 通过 RPC 检查节点的健康状况 :https://github.com/vi/websocat#installation
echo'{"id":1,"jsonrpc":"2.0","method":"system_health","params":[]}'| websocat -n1 -B 99999999 ws://127.0.0.1:9944{"jsonrpc":"2.0","result":{"peers":50,"isSyncing":false,"shouldHavePeers":true},"id":1}
Polkadot 客户端有许多日志目标。用户最感兴趣的可能是:
- afg(Al's Finality Gadget - GRANDPA 共识)
其他目标包括:db、gossip、peerset、state-db、state-trace、sub-libp2p、trie、wasm-executor、wasm-heap。
默认情况下,所有目标都设置为 info 日志记录。您可以使用 --log (-l short) 选项调整单个日志级别,例如 -lafg=trace,sync=debug 或全局使用 -ldebug.
Parity Polkadot客户端默认连接到遥测(Telemetry)。您可以使用--no-telemetry禁用它,或者使用--telemetry-url选项仅连接到指定的遥测服务器(有关说明,请参阅帮助选项)。连接到公共遥测可能会公开信息,从而使您的节点面临更高的攻击风险。您可以运行自己的私有遥测服务器或使用此Helm图表将substrate-telemetry实例部署到Kubernetes集群中。
该节点还默认公开了一个 Prometheus 端点(可以使用 --no-prometheus 禁用)。Substrate 有一个使用此端点的监控节点指标教程。相关内容:https://docs.substrate.io/tutorials/get-started/monitor-node-metrics/
波卡网络蓬勃发展,生态项目层出不穷,波卡生态研究院聚焦波卡生态动向,把握当前趋势。回复【日报】,获取波卡生态每日最新消息汇总。
欢迎大家加入我们 Polkadot 生态研究院的电报:
https://t.me/polkadot_eri
欢迎大家访问波卡生态研究院的 Mirror 地址:
https://mirror.xyz/0x9A259b3a2316281Cc948cE2Cf1Ac610a79844f05