#run-time #encointer #pallet #api #ceremonies #pallet-encointer-ceremonies #pallets

no-std pallet-encointer-ceremonies-rpc-runtime-api

Encointer 区块链运行时的仪式 RPC 运行时 API

13 个版本 (主要突破)

13.1.0 2024 年 7 月 15 日
12.1.0 2024 年 6 月 25 日
11.1.0 2024 年 6 月 13 日
10.1.0 2024 年 5 月 21 日
1.2.0 2023 年 10 月 26 日

#8#pallets

Download history 328/week @ 2024-04-18 178/week @ 2024-04-25 139/week @ 2024-05-02 85/week @ 2024-05-09 655/week @ 2024-05-16 409/week @ 2024-05-23 331/week @ 2024-05-30 670/week @ 2024-06-06 393/week @ 2024-06-13 598/week @ 2024-06-20 603/week @ 2024-06-27 207/week @ 2024-07-04 806/week @ 2024-07-11 387/week @ 2024-07-18 508/week @ 2024-07-25 450/week @ 2024-08-01

2,154 每月下载量
用于 pallet-encointer-ceremoni…

GPL-3.0 或更高版本

73KB
1.5K SLoC

Encointer Pallets

Rust

encointer 定制的所有应用程序特定 Pallets

pallet-encointer-ceremonies

一个执行 encointer 仪式的 substrate Pallet

pallet-encointer-communities

一个用于 encointer 社区和管理其聚会地点的 substrate Pallet

pallet-encointer-ceremonies

一个执行 encointer 仪式的 substrate Pallet

pallet-encointer-balances

一个支持多个社区和滞纳金的 balances 模块

pallet-encointer-bazaar

社区成员的分类广告注册,链接到 IPFS

personhood-oracle & sybil-gate 模板 [已弃用]

一个带有 XCM 支持的数字人格验证预言机。有关更多信息,请参阅 stale demo 分支上的 README.md:https://github.com/encointer/pallets/tree/demo/xcm-personhood-oracle-and-sybil-gate-template#encointer-pallets

开发提示

基准测试

您可以通过在 encointer-node 中运行基准测试并在节点仓库中的脚本中取消注释具有 frame-weight-template-full-info.hbs 的行来自动更新 WeightInfo 定义:./scripts/benchmark_runtime.sh(请参阅脚本文档)。

序列化

  • json-rpc crate序列化u-/i128存在已知问题,请参阅(https://github.com/paritytech/substrate/issues/4641)。这主要影响我们在自定义RPC中序列化定点数时。在ep-core中有一个自定义序列化中间件作为该问题的解决方案,它可以作为自定义serde属性使用
#[cfg_attr(feature = "serde_derive", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde_derive", serde(rename_all = "camelCase"))]
pub struct BalanceEntry<BlockNumber> {
	/// The balance of the account after last manual adjustment
	#[cfg_attr(feature = "serde_derive", serde(with = "serialize_fixed"))]
	pub principal: BalanceType,
	/// The time (block height) at which the balance was last adjusted
	pub last_update: BlockNumber,
}

我们还遵循substrate的序列化标准,使用camelCase

版本控制

主版本号必须增加,因为polkadot-sdk发布升级总是破坏性更改。为了方便起见,本存储库中的所有crate应具有相同的重大版本。

我们单独增加次要crate版本,并使用最高crate版本标记存储库

动机:git blame应该在crate目录级别显示是否有更改。这样,在github上浏览存储库时,真的可以显示某个pallet或crate何时被修改。即使只是调整上游升级,也只需将crate版本提升到最新,这将全局标记

板块存储库的版本不需要与节点或 parachain(或运行时)crate版本对齐——尽管在过去一直是这种情况。

crates.io

使用cargo-release,我们在toml中明确排除非公开crate

cargo install cargo-release

# check workspace dependency tree
cargo tree --workspace -i ep-core

# add --execute if you're sure
cargo release publish -p ep-core -p encointer-primitives -p pallet-encointer-scheduler -p pallet-encointer-balances -p pallet-encointer-communities
cargo release publish -p encointer-ceremonies-assignment -p encointer-meetup-validation -p pallet-encointer-ceremonies -p pallet-encointer-bazaar -p pallet-encointer-reputation-commitments -p pallet-encointer-faucet -p pallet-encointer-democracy
cargo release publish -p encointer-rpc -p encointer-balances-tx-payment -p encointer-balances-tx-payment-rpc-runtime-api -p encointer-balances-tx-payment-rpc -p pallet-encointer-bazaar-rpc-runtime-api -p pallet-encointer-bazaar-rpc -p pallet-encointer-ceremonies-rpc-runtime-api -p pallet-encointer-ceremonies-rpc -p pallet-encointer-communities-rpc-runtime-api -p pallet-encointer-communities-rpc

lib.rs:

Runtime API定义是Ceremonies RPC扩展所必需的。

依赖关系

~20–35MB
~584K SLoC