#运行时 #互连 #模块 #API #社区 #模块 #pallet-encointer-communities

无需std pallet-encointer-communities-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日

#2796 in 神奇豆子

Download history 330/week @ 2024-04-18 178/week @ 2024-04-25 139/week @ 2024-05-02 85/week @ 2024-05-09 658/week @ 2024-05-16 407/week @ 2024-05-23 330/week @ 2024-05-30 673/week @ 2024-06-06 394/week @ 2024-06-13 600/week @ 2024-06-20 606/week @ 2024-06-27 196/week @ 2024-07-04 813/week @ 2024-07-11 391/week @ 2024-07-18 510/week @ 2024-07-25 452/week @ 2024-08-01

每月2,169次下载
pallet-encointer-communit… 中使用

GPL-3.0-or-later

73KB
1.5K SLoC

Encointer Pallets

Rust

encointer的所有应用特定模块

pallet-encointer-ceremonies

一个执行encointer仪式的substrate模块

pallet-encointer-communities

一个substrate模块,用于encointer社区及其聚会地点的管理

pallet-encointer-ceremonies

一个执行encointer仪式的substrate模块

pallet-encointer-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

开发提示

基准测试

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

序列化

  • json-rpc crate中序列化u-/i128存在已知问题,请参阅(https://github.com/paritytech/substrate/issues/4641)。这主要影响我们在自定义RPC中序列化定点数时。在ep-core中有一个自定义序列化shim作为该问题的解决方案,可以用作自定义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

lib.rs:

需要由社区RPC扩展使用的运行时API定义。

依赖项

~21–36MB
~601K SLoC