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 日

#15 in #pallets

GPL-3.0-or-later

86KB
1.5K SLoC

Encointer Pallets

Rust

encointer 的所有特定应用程序 Pallet

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 中运行基准测试并取消注释节点仓库中的脚本(代码:./scripts/benchmark_runtime.sh)来自动更新 WeightInfo 定义。有关脚本文档的更多信息,请参阅脚本文档。

序列化

  • 在 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 版本升级到最新版本,这将全局标记。

插槽仓库的版本无需与节点或中继链(或运行时)crate 版本对齐——尽管过去一直是这种情况。

crates.io

使用 cargo-release,我们在 tomls 中明确排除非公共 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

依赖关系

~93–135MB
~2.5M SLoC