TON 上的区块链开发不仅仅是 FunC 和 Tact 中的智能合约。TON 开发人员每当想要构建从 dApp 前端到机器人的任何东西时,都会依赖许多库和不同的开发工具来编译和测试他们的智能合约。
这些库和工具以各种语言实现,从 TypeScript/JavaScript 到 Python。每种语言通常都有一个类似 NPM 的库分发渠道。
谁维护图书馆?
TON是一个去中心化的生态系统;许多重大贡献都来自核心团队之外。这有很多优点,比如指数增长和快速创新,但它也带来了一些挑战。
图书馆通常源自 TON 生态系统中活跃的企业之一。让我们以 Jetton Minter 为例 - 这个工具最初是由 Orbs 创建的。发明库的项目通常维护并拥有它。即使社区中有人想要提出 PR,也由拥有它的项目决定是否接受它。
但是,当这些库之一变得流行并且其他项目依赖它时会发生什么?这将图书馆变成了某种共享基础设施。这种情况下该由谁来维护呢?
共享库单一所有权的问题
让我们以 Orbs 为例来研究在 TON 生态系统内的私有存储库或个别公司的存储库中开发库时出现的问题。
在 Jetton Minter 的最初几天,该工具托管在 Orbs 拥有的存储库上,并从 Orbs 拥有的域提供服务。该工具并不是 Orbs 商业模式的真正核心部分。Orbs 不会从中赚到任何钱。它是为了社区的利益而创建的。
它工作得很好,所以为什么不把它留给 Orbs 单一所有权呢?
有几个问题:
- Orbs 正在开发其商业模式核心的其他产品。他们的核心业务活动始终优先于无利可图或非核心业务。如果他们太忙而无法正确维护此工具,会发生什么情况?
- 如果 Orbs 决定利用该工具的流行来为其商业利益谋取利益,会发生什么?例如,引入 Jetton 挂牌费。
- 如果他们因为专注于其他事情而未能识别该工具中的安全漏洞,会发生什么?这将在依赖它的所有其他项目中产生漏洞的多米诺骨牌效应。
开源模式之美
开源模型对上述问题给出了简单的答案。只有当用户发现该工具有益时,该工具才会流行。只要使用该工具能带来明显的好处,许多项目就会依赖该工具。
共享库应始终在 MIT 等宽松的开源许可证下发布。这为图书馆的用户群提供了强有力的保证,即该图书馆永远不会被滥用。宽松的开源许可证消除了锁定。如果库的维护者无法满足其用户群的需求,有人会分叉该库并创建更好的版本。
开源模式使图书馆保持诚实。
将共享库交给共享所有权
一旦库或工具成为许多项目的流行共享依赖项,它就应该摆脱单一所有权的转变。继续依赖由单个实体控制的工具绝不符合社区的最佳利益。这种单点故障会带来很高的风险。只需要一个恶意行为者就可以对生态系统的很大一部分造成重大损害。
NPM 的挑战
当您发布 TypeScript/JavaScript 库供其他开发人员导入时,通常会将其发布到 NPM。NPM 的问题在于它不遵循开源无锁定模型。NPM 包有一个众所周知的名字,人们可以导入它。该名称与域名类似,无法分叉。
NPM 名称按照先到先得的原则免费提供。这意味着他们很容易蹲下。我们可以使用的名称通常会被注册,即使它们未被使用或废弃。这也带来了一系列潜在的安全问题。NPM 库 ton-crypto 是否是官方的?你能用你的秘密助记词安全地使用它吗?没有办法知道。
共享 TON 库的稳定家园
为了使 TON 生态系统对开发人员来说更安全、更稳定,我们一直在寻找一个可以过渡到共享所有权的流行共享库的家。
主要要求是这个地方不能由单个公司或个人拥有。它必须按照行为准则运作,由 TON 社区信任的一群知名贡献者共同做出决策,以维护生态系统的利益。每当出现未解决的争议时,应邀请 TON 基金会帮助解决问题,以使相关各方满意。
该主页用于存放外围库和工具。其中许多不是由核心团队维护的,所以这个家应该能够提供write access
给外部贡献者。尽管如此,核心团队的代表将拥有管理权限。
为了实现这一目标,我们创建了一个新的 GitHub 组织,以主ton.org
域标记。
我们特意选择了 ton-blockchain GitHub 组织之外的目的地,因为后者是为核心节点基础设施和协议保留的,并且主要由核心团队而不是社区的外部贡献者维护。我们还选择了与 ton-community GitHub 组织不同的目的地,因此它可以专注于更小、更官方的核心库列表,而社区对几乎所有内容都是开放的。
TON 现在与其他著名的区块链生态系统(例如 Solana)处于同等地位,后者在一个命名空间下列出了所有官方核心库。
使用 NPM 组织可以让我们完全控制该命名空间下的所有名称。这解决了我们在 NPM 方面遇到的许多挑战。由于所有子名称都是我们的,并且用户可以轻松识别安全的官方库,因此在此名称空间下抢注是不可能的。
移民
TON 生态系统中许多流行的 JavaScript/TypeScript 库(例如ton
、ton-core
、blueprint
和ton-crypto
)是由不同团队(例如TonWhales、Orbs和Ton Tech )开发的,并由他们维护 - 值得赞扬的地方给予赞扬。但现在,这些图书馆已成功过渡到共享所有权,来自多个实体的多个贡献者可以进行协作。
我们敦促所有开发人员过渡到新的 NPM 软件包,因为旧的软件包很快就会停止支持并被标记为已弃用。
本站所提供的所有资讯均仅供读者参考。这些资讯不代表任何投资建议、提供、邀请或推荐。读者在使用这些资讯时,应当考虑自己的个人需求、投资目标和财务状况。所有投资都伴随着一定的风险,在做出任何投资决策之前请多加留意。