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 日 |
0.1.0 | 2023 年 10 月 26 日 |
#2 in #encointer
每月 94 次下载
在 4 个 仓库中使用
4KB
Encointer Pallets
为 encointer 提供所有应用特定 Pallets
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 中有一个自定义序列化 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版本标记仓库
动机:如果某个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
依赖
~11–21MB
~294K SLoC