选择 Collator

⚠️ Update Notice:

Please read Substrate to Polkadot SDK page first.


本指南对准备在生产环境中启动 Parachain 的团队很有用,它探讨了 collator 选择中的不同选项。

为 Parachain 网络设置 collator 至关重要,以确保存在一些中立的 collator 来防止审查——但不一定是多数。 避免 collator 过多也很重要,因为它们可能会减慢网络速度。 本指南逐步介绍了在设计 Parachain 网络时需要考虑的事项。

Collator 选择

您可以自由选择 collator 选择方法。 常见的方法包括权益投票或通过委员会或其他来源(例如民主)直接分配 collator。 在这两种情况下,创建一个 pallet 来实现最符合您需求的逻辑。

权益投票

Cumulus collator-selection pallet 是实现权益投票以选择 collator 的一个实用示例。

使用链上治理

实现一个特殊的来源,允许该来源的成员成为 collator。使用民主 pallet 来选举这些成员,并在专门用于处理 collator 选择的 pallet 中定义它们:

    /// 此 pallet 的配置特性。
	#[pallet::config]
	pub trait Config: frame_system::Config {
        // --snip-- //
        type MySpecialOrigin: EnsureOrigin<Self::RuntimeOrigin>;
    }
    // --snip-- //
    #[pallet::call]
	impl<T: Config> Pallet<T> {
		/// 某些设置 collator 的可调度函数。
		#[pallet::weight(some_weight)]
		pub fn set_collator( origin: OriginFor<T>) -> DispatchResultWithPostInfo {
            T::MySpecialOrigin::ensure_origin(origin)?;
            // --snip-- //
        }

还有不同的方法可以为 collator 提供激励。 查看 此示例 以了解如何操作。

示例

  • 使用交易费用通过激励来选择 collator 的 Cumulus 实现
  • 使用通货膨胀货币政策抵押方案选择 collator 的 Moonbeam 实现

资源