Swarm官方披露大量信息,详解主网节点运行要求与代币机制
Swarm 主网已上线,然而许多人依然对这个项目一知半解,比如运行主网的硬件要求是什么,需要多少硬盘空间,测试网如何升级至主网,所谓 Bonding Curve 究竟是什么,存储与奖励机制如何运作,运行节点是否需要质押代币等。这篇文章或许可以为你答疑解惑。
(本文内容由蓝贝壳云储总结自官方视频会议,仅供参考,具体内容请以 Swarm 官方消息为准。)
Swarm 主网节点的硬件要求是?
官方解答:对于具体的硬件要求,我们还未进行正式的测试,不过我们可以介绍一下我们自己运行节点的硬件参数。
启动节点(bootnodes)的要求更高一些,毕竟它们需要更高的性能表现。
普通用户不运行启动节点,因此普通的存储节点(storage nodes)只需要大概 3GB 内存,一到两个 CPU(具体取决于用户想要自己的节点拥有多高的运行效率),这也是我们自己运行节点所用的硬件参数,当然还有就是用户需要足够的存储空间。另外如果用户使用 SSD 硬盘,则运行表现会更好。
用户具体需要多少硬盘空间?
官方解答:硬盘空间的大小很重要,Bee 节点的存储包含两套系统,即“储备(reserve)”与“缓存(cache)”。
“储备”可以容纳 2 的 23 次方个块(chunk:Swarm 中的标准数据存储单元),大概占 34GB。
“缓存(cache)”的大小可由用户自定义,不过它的默认大小为 4GB。
另外还需要一部分存储空间用来存储和运行 Bee 节点,大概需要 5GB。
所以具体需要的硬盘空间大概为 34GB+4GB+5GB+一小部分空余空间 =55GB 左右。
如何从测试网升级至主网?
Q:测试网升级到主网具体是怎么操作的,是否存在升级路径?还是说用户需要从零开始?用户的数据怎么办?部署的 Docker-compose 呢?
官方解答:简而言之,我们会发布一个全新的网络。
对于测试网用户而言,我们会准备一个升级路径,从 v0.6 升级至 1.0-rc 版本。不过如果用户想要运行一个连接至主网的节点,想要与真正的 BZZ 代币进行交互,那么用户所连接到的就是一个全新的网络。
事实上,主网上的邮戳(postage stamp)等新的内嵌机制是无法在测试网上直接进行改造升级的,因此主网就是一个全新的网络。
如果用户在测试网上存有一些想要保留的数据,那么我们只能建议用户将那些数据下载下来,然后再在主网上传。
至于 docker-compose 部署的节点,也和普通的节点升级一样,用户可以继续在测试网运行节点,也可以切换至主网,不过就像上面提到的,主网是个全新的网络,因此用户需要将存储的数据重新上传至主网。
Q:有用户目前在 raspberry pi 系统中应用 SSD 运行 Swarm 节点,请问主网上线时还可以继续使用该系统运行 Swarm 节点吗?是否会发生什么变化?
A:我们通过 Swarm 内置的激励机制鼓励用户运行 Bee 节点。作为开发团队我们并未使用过 raspberry pi 系统运行 Swarm 节点,所以如果主网上线后用户继续使用该系统,并发现可以继续正常运行 Swarm 节点,那么答案就是“可以”。我们是 Swarm 的开发团队,在开发领域是专家,但在节点的运营方面主要还是要靠用户。到时用户可以将自己的节点运营结果通过官方 Discord 上的相关频道反馈给我们,以帮助我们继续完善 Swarm 的开发。
Bonding Curve 是什么?BZZ 会增发吗?
官方解答:很抱歉目前关于 BZZ 增发与否的问题还无法详细说明,我们会在主网上线后在其它场合单独解释该问题。
关于 Bonding Curve 合约,它相当于一个可以买卖 BZZ 代币的市场,它可以桥接买家和卖家之间的时间差,用户可以将 BZZ 代币存入并得到抵押品(collateral),又或者反过来存入抵押品换取 BZZ 代币,即便当时并不存在交易对家。
所以说它相当于一个工具,用来确保 BZZ 代币的流通性,如果用户想要获得 BZZ 代币,那么只要通过 Bonding Curve,就总是可以获得 BZZ 代币,又或者用户正在运行 Swarm 节点,并想要将自己手中的 BZZ 卖掉一些,那么也可以随时通过 Bonding Curve 做到。这样用户就并不需要一个实际的交易对家去完成自己的交易了。
不过假设交易对家确实存在,那么在 Bonding Curve 上的交易就和其它交易场所上的交易没什么区别。用户的 UI 界面和体验与其他的 swap 差不多。
Q:那么极端情况下,假设所有用户都将 BZZ 代币在 Bonding Curve 上卖出,会发生什么?
A:那种情况下用户将获取所有的抵押品(collateral),不存在流通中的 BZZ 代币,因为那种极端情况下所有 BZZ 都被用于置换了抵押品。
Q:那么反过来说,如果大量用户都通过 Bonding Curve 买入 BZZ ,那么是否存在任何限制?
A:这个问题可以从两方面作答。一方面,这种行为会导致 BZZ 的价格急速上升,那么在其它限制发挥作用之前,用户就已经会因为无法支付 BZZ 极其高昂的价格而无法买入 BZZ。不过另一方面,Bonding Curve 确实存在嵌于智能合约内的限制,以避免过量的交易行为,不过达到这种限制的过量交易行为发生的可能性微乎其微,在 BZZ 代币价格涨到大约 5 亿 Dai 的情况下,用户才会触及到这个限制,我们不认为这种情况会发生。
Q:在 Bonding Curve 中,代币价格与代币供应量之间的关系究竟是怎样的?
A:Bonding Curve 运用的函数模型是单调递增的,也就意味着如果用户通过 Bonding Curve 买入 BZZ 代币,但是没人去卖 BZZ 代币,那么 BZZ 代币的价格就会迅速增长,反之如果用户通过 Bonding Curve 卖出 BZZ 代币,但是没人去买 BZZ 代币,那么 BZZ 代币的价格就会迅速下降。不过如果存在交易对家,即便交易中的买入和卖出并非同时发生的,只要买卖行为达到一定的平衡,那么 BZZ 代币的价格就会相对稳定。另外 Bonding Curve 还会发挥一定的价格惯性(inertia)作用,意味着由于 Bonding Curve 中存在大量抵押品,所以想要让 BZZ 价格发生变化,就需要大量的交易才能实现。这和其它许多新发布的代币不同,其它新发布的代币由于一开始缺乏流动性,因此其价格往往波动幅度非常大,我们希望 Bonding Curve 可以帮助避免这种情况的发生,以让 BZZ 代币的价格真正反映出市场上的供需关系。
Q:是否存在其它已经成功使用了 Bonding Curve 的项目呢?
A:是的,我们借鉴了 Bancor,事实上我们使用的 Bonding Curve 和 Bancor 的很相似,由于各种各样的原因,我们更改了其中的一些参数。Bonding Curve 虽然算是新兴技术,但我们也并非没有前车之鉴。Bonding Curve 增加了 Sawrm 代币体系的稳定性,从而让 Swarm 的整个经济体系更健康,就像 DeFi 带来了很多的创新那样,我们认为越来越多的项目会采用和我们相似的机制去完善他们的经济体系。
为什么 Swarm 采用的是 16 个小数位?
Q:在所有 ERC-20 代币采用的都是 18 个小数位的情况下,为什么 Swarm 采用的是 16 个小数位?难道是为了特立独行么?
官方解答:其实存在一些技术上的原因让我们最终采取了 16 个小数位,这些原因和 Bonding Curve 也有关系,我们想要避免在大部分 BZZ 代币被卖出至 Bonding Curve 时一些代币价格归零的情况发生。这个完全是技术上的决定,希望这一点不会让部分用户感到不便。当然如果有用户看到市面上存在 18 个小数位的 BZZ,那么它一定就是假的用于欺诈的代币。
扩容解决方案
Q:以太坊上的高昂 gas 费用如何解决,团队是否有计划链下(off-chain)或 Layer2 解决方案?
官方解答:我们对一些替代方案及 Layer2 方案进行了调查研究,目前我们基本上决定使用 xDai 侧链解决方案,它具有和以太坊完全一致的智能合约机制,一样的交易处理方式,互相兼容的各种 API,这也就意味着主链和侧链间的转换非常轻松。
xDai 已经成功运行了一段时间,它表现良好,而且很多项目都使用了 xDai,因此社区对它也存在信任感,它比以太坊主网更便宜也更迅捷,因此也就可以处理 Swarm 需求的小额交易。
不过它并不是一个长期解决方案,它目前只是用于解决燃眉之急,因为以太坊的扩容跟不上目前各种项目的开发速度,我们希望以太坊能尽快找到更好的扩容方案,也许是以太坊 2,也许是 Rollup,目前还不知道具体答案,不过一旦这种扩容方案上线,Swarm 就能迅速适应其中。
xDai 是实现了完全桥接的侧链,意味着 BZZ 可以从主网和侧链之间安全地来回转换,虽然它不是扩容的终极解决方案,但就目前而言它足以完成其使命。
Swarm 的存储和奖励机制
官方解答:对于每个 Bee 节点来说“储备(reserve)”的大小是固定的,而“缓存(cache)”的大小则可以调节,它的大小也和整个 Swarm 网络的数据容量相关,当缓存达到一定大小以后,并不意味着缓存越大就能得到越多的奖励,因此也可以说,从收益的角度讲,在一个节点上布置特别大的容量并不具有什么优势。
此外 Swarm 中还有一个名为“钉住(pinning)”的功能,它可以将特定数据钉在用户的本地节点上,这些被钉住的数据会成为用户存储的一部分,无法被 Swarm 网络删除。如果这些被钉住的内容不在“储备(reserve)”之内,则需要额外的存储空间去储存它们,换言之,如果用户想要钉住邮戳(postage stamp)过期的内容,就需要为它们准备额外的存储空间,负责专门存储这些邮戳过期的内容。
总的来讲,“储备(reserve)”是维持 Swarm 网络的必要组成部分,而“缓存(cache)”则是为加快数据传输及减少支出费用而存在,因此即便没有节点进行“缓存(cache)”,只要“储备(reserve)”还存在,Swarm 网络便可成立。
无挖矿的覆盖网络
Q:什么是无挖矿的覆盖网络(non-minable overlay)?它是如何运作的?
官方解答:Swarm 的节点随机选择它们的覆盖地址(overlay address)——定义用户所存储块的地址,我们总是假定覆盖地址均匀分布在 Swarm 网络中,不过实际上,由于此前覆盖地址完全取决于用户的以太坊地址,用户在所谓的“挖矿(mining)”过程中,进行了多次尝试后其覆盖地址就会落在某个“邻域(neighborhoood)”中,这就有可能导致一些不良情况的发生,比如某区域的网络比另一区域的网络拥有更高的容量,又比如一些用户只在某一特定“邻域”进行反复挖矿,导致该“邻域”从网络中被完全孤立,因此我们才采用了无挖矿的覆盖网络(non-minable overlay)。为了实现这种覆盖网络,我们加入了另一种要素,以定义一个用户的覆盖地址,如果用户想要选择“邻域”,就需要在 Dai 侧链上进行交易,即需要花费真金白银。这种机制下,节点运营者依然可以选择“邻域”,但是必须付费。事实上,除了覆盖地址有所不同以外,大部分节点运营者不会感受到什么改变,这个更多的是一小部分内部机制的改变。
运行节点需要质押 BZZ 吗?
官方解答:不需要,目前用户无需质押 BZZ 以运行 Bee 节点,用户可以在 0BZZ 的情况下运行 Bee 节点,然后有可能通过服务于网络的形式赢取奖励。想要以 0BZZ 加入 Swarm 网络是完全可能的,用户可以在不部署支票簿(chequebook)的情况下成为节点运营者,不过如果用户想要部署支票簿,将支票兑现(cash out)或购买邮戳等,那么用户就需要 xDai 与 BZZ。当然,目前的版本中无需质押,并不意味着今后也绝对无需质押,关于 Swarm 接下来的激励机制,未来还会进行多次迭代更新,请大家持续关注。
为什么不提倡运行云节点
Q:虽然可以在 AWS 等云端运行 Bee 节点,但是从意识形态上来讲为什么 Swarm 的节点不适合在云端运行?
官方解答:基本上来讲,Swarm 鼓励用户掌握自己的节点,当用户将节点托付给云端时,也就在一定程度上放弃了自己的控制权,将其交给了云端这一第三方,虽然它可以在云端完美运行,但这对去中心化不利。Swarm 基金会支持并鼓励用户运行自己的节点。