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.0.0 | 2023年10月26日 |
#5 在 #balances
1,789 每月下载量
用于 encointer-balances-tx-pay…
74KB
1.5K SLoC
Encointer Pallets
为 encointer 的所有应用特定pallet
pallet-encointer-ceremonies
一个执行encointer仪式的substrate pallet
pallet-encointer-communities
一个用于encointer社区及其聚会地点管理的substrate pallet
pallet-encointer-ceremonies
一个执行encointer仪式的substrate pallet
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
开发提示
基准测试
您可以通过在encointer-node中运行带有节点仓库中脚本的基准测试来自动更新WeightInfo
定义: ./scripts/benchmark_runtime.sh
并取消注释包含frame-weight-template-full-info.hbs
的行(请参阅脚本文档)。
序列化
- 在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版本升级到最新,这将被全局标记
Pallet仓库版本不需要与节点或 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
:
运行时API定义是Ceremonies RPC扩展所需的。
依赖关系
~20–35MB
~585K SLoC