1 个不稳定版本
0.1.0 | 2019年8月2日 |
---|
#44 在 #组织 中
1,398 个星标 & 47 个关注者
29KB
365 行
V1.1 更新 [12/20/23]: 了解 Crypto Ecosystems 分类法的 1.1 版本更新 这里。
加密生态系统
🌲 加密生态系统是一个用于共享关于开源区块链、Web3、加密货币和去中心化生态系统数据,并将它们与 GitHub 组织和代码库关联的分类法。所有生态系统都指定在 TOML 配置文件中。
此存储库并不完整,希望它永远不会完整,因为每天都有新的生态系统和存储库被创建。
如何贡献
有几个方法可以帮助你发展这项倡议。
选项 1:打开 Pull Request
你可以在 /data/ecosystems
目录下为生态系统创建任何 .toml 文件,或编辑现有的一个来帮助改进生态系统数据。
你可以从这个存储库分叉并从分叉的存储库打开一个 PR 到这个存储库。如果你不确定如何操作,可以参考这个视频中的教程 这里。
数据格式
以下是一个比特币生态系统的配置文件示例
# Ecosystem Level Information
title = "Bitcoin"
# Sub Ecosystems
# These are the titles of other ecosystems in different .toml files in the /data/ecosystems directory
sub_ecosystems = [ "Lightning", "RSK Smart Bitcoin", "ZeroNet"]
# GitHub Organizations
# This is a list of links to associated GitHub organizations.
github_organizations = ["https://github.com/bitcoin", "https://github.com/bitcoin-core", "https://github.com/bitcoinj", "https://github.com
/btcsuite", "https://github.com/libbitcoin", "https://github.com/rust-bitcoin"]
# Repositories
# These are structs including a url and tags for a git repository. These URLs do not necessarily have to be on GitHub.
[[repo]]
url = "https://github.com/bitcoin/bitcoin"
tags = [ "Protocol"]
[[repo]]
url = "https://github.com/bitcoinbook/bitcoinbook"
tags = [ "Documentation"]
[[repo]]
url = "https://github.com/bitcoin-wallet/bitcoin-wallet"
tags = [ "Wallet"]
通过将数据指定为 git 中的演进配置文件,我们受益于一个长期、可审计的数据库,它既可由人类阅读,也可由机器阅读。
选项 2:完成生态系统提交表单
如果你不是开发者,或者你觉得提交过于困难,可以使用下面的基于 Airtable 的替代方案。
你可以 在这里访问表单,填写并提交它,我们将处理其余部分 :)。
如何为Electric Capital加密货币生态系统使用提供归属
要使用Electric Capital加密货币生态系统地图,您需要一个归属证明。
归属证明需要包含3个组成部分
- 来源:“Electric Capital加密货币生态系统映射”
- 链接:https://github.com/electric-capital/crypto-ecosystems
- 标志:标志链接
可选:加密货币生态系统的每个人都从这个存储库的增加中受益。在您的归属旁边包含一个贡献请求是一个对每个人的帮助。
示例请求语言:“如果您在开源加密货币方面工作,请将您的存储库提交到这里以进行计数。”
示例归属
数据来源:Electric Capital加密货币生态系统映射
如果您在开源加密货币方面工作,请在此提交您的存储库以进行计数。
如何贡献(分步指南)
您可以向这个数据集做出三种类型的贡献
- 添加新的生态系统(例如,新的第1层区块链)
- 添加新的子生态系统(例如,在上述生态系统中拥有多个存储库的大型组织)
- 添加新的存储库(例如,生态系统/子生态系统中的个人项目)或组织
这可能听起来很复杂。它可能甚至更令人困惑,因为尽管存在这些不同的数据源/结构,但它们都位于一个目录(data/ecosystems)中,作为.toml
文件。
为了使事情更容易,我们为您制定了以下路线图,您可以根据您要尝试做出的上述三种类型之一的贡献来遵循。
选项1:添加新的生态系统(例如,区块链)
如果您添加的是一个完全没有父级的全新生态系统(例如,Cosmos/Ethereum),则遵循此路径。您很可能是添加一个新的L1区块链,所以我们以一个虚构的新链,即EasyA Chain
为例。按照以下步骤操作
- 转到
data/ecosystems
目录 - 找到您要添加的生态系统的首字母命名的文件夹。这里,它是字母
E
,因为我们的L1被称为EasyA Chain
。 - 打开文件夹
- 在文件夹内,创建一个以您的L1名称命名的新的
.toml
文件。这里,它将被称为easya-chain.toml
。完整的路径现在将是data/ecosystems/e/easya-chain.toml
。 - 添加以下两个必填字段
# Required field number 1: Name of the ecosystem
title = "EasyA Chain"
# Required field number 2: List of associated GitHub organizations
github_organizations = ["https://github.com/EasyA-Tech"]
- 提交您的PR!✅
请记住,这是一个层次结构。如果您正在添加一个Cosmos appchain,那么您应该遵循下面的选项2(因为它是Cosmos的子生态系统)。
需要注意的是,您不需要将您GitHub组织中所有的存储库作为单独的存储库添加到.toml
文件中,因为系统会自动获取组织内的所有存储库。
您可能会看到其他已经这样做过的生态系统
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech"]
[[repo]]
url = "https://github.com/EasyA-Tech/Chain" # ❌ Don't do this ❌
tags = [ "Protocol"]
这是不必要的。它增加了混乱,使得审阅者更难批准您的PR。我们将在下面解释何时以及为什么应该将存储库添加到生态系统中。
选项2:添加新的子生态系统
如果您要添加一个新的子生态系统(换句话说,它有一个父级,如区块链或第0层),请按照以下步骤操作。我们再次以虚构的EasyA Chain
L1区块链为例。然而,这一次,我们将向其中添加新的EasyA Community Wallet
子生态系统。
- 转到
data/ecosystems
目录 - 找到您要添加的项目所属的生态系统的名称首字母命名的文件夹。这里,它是字母
E
,因为我们的L1被称为EasyA Chain
。 - 打开文件夹。这里,它是
E
文件夹。 - 在文件夹中找到具有生态系统名称的
.toml
文件。在这里,按照我们的EasyA Chain
示例,它将是easya-chain.toml
。生态系统完整路径为data/ecosystems/e/easya-chain.toml
。 - 打开此文件。在生态系统文件中,您将看到类似的内容
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech"]
-
接下来,您需要进行以下两项操作之一。
- 如果没有子生态系统,请通过添加以下行来添加您的子生态系统
sub_ecosystems = ["EasyA Community Wallet"]
- 如果您已看到一个以
sub_ecosystems
开头的行,则只需将您的子生态系统添加到列表中
sub_ecosystems = ["Pre-existing Sub-Ecosystem", "EasyA Community Wallet"]
总的来说,您的文件应类似于以下内容
title = "EasyA Chain"
sub_ecosystems = ["EasyA Community Wallet"] # This is the line we changed
github_organizations = ["https://github.com/EasyA-Tech"]
- 一旦将子生态系统的名称添加到父生态系统文件中,请回到
data/ecosystems
目录。 - 这次,找到名为您要添加的子生态系统名称首字母的文件夹。在这里,它恰好是字母
E
,因为我们的子生态系统名为EasyA Community Wallet
。 - 打开文件夹。这里,它是
E
文件夹。 - 在文件夹中创建具有子生态系统名称的
.toml
文件。按照我们的EasyA Community Wallet
示例,它将是easya-community-wallet.toml
。生态系统的完整路径为data/ecosystems/e/easya-community-wallet.toml
。 - 添加以下两个必填字段
# Required field number 1: Name of the sub-ecosystem
title = "EasyA Community Wallet"
# Required field number 2: List of associated GitHub organizations
github_organizations = ["https://github.com/EasyA-Community-Wallet"]
- 提交您的PR!✅
请记住,这里同样适用选项 1 中的注释:系统会自动从您的子生态系统 GitHub 组织中拉取仓库,因此您不需要单独列出所有仓库。
如果您更喜欢视频,您还可以在这里看到上述步骤的实时操作 here。
如果您一直密切跟随,您会注意到添加子生态系统到父生态系统后的步骤与选项 1(添加一个没有任何父生态系统的全新生态系统)完全相同。这是因为这种分类法是基于血统的。任何子生态系统本质上就是一个独立的生态系统(子生态系统并不比其他生态系统价值低)。生态系统和子生态系统二分法仅仅是为了我们可以看到不同生态系统之间的关系。您可以无限期地(永远)向子生态系统添加子生态系统。
选项 3:添加新的仓库或组织
系统会自动拉取生态系统下 GitHub 组织中列出的所有仓库。例如,当系统看到以下生态系统时,它会自动计算 EasyA-Tech
GitHub 组织下的所有仓库。
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech"]
所以,请不要担心!如果它已经包含在数据集中的组织中,您不需要添加每个仓库。
要添加新的组织,只需将其完整的 GitHub URL 添加到相关生态系统的组织列表中。以下是一个添加具有 URL https://github.com/EasyA-Community
的组织作为 EasyA Chain
生态系统一部分的示例。
您将遵循以下步骤
- 转到
data/ecosystems
目录 - 找到名为您要添加的组织所属生态系统名称首字母的文件夹。在这里,它恰好是字母
E
,因为我们的生态系统是EasyA Chain
。 - 打开文件夹。这里,它是
E
文件夹。 - 在文件夹中找到具有生态系统名称的
.toml
文件。在这里,按照我们的EasyA Chain
示例,它将是easya-chain.toml
。生态系统完整路径为data/ecosystems/e/easya-chain.toml
。 - 打开此文件。在生态系统文件中,您将看到类似的内容
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech"]
- 只需将您的 GitHub 组织 URL 添加到列表中。在这里,我们的 URL 是
https://github.com/EasyA-Community
,因此我们将添加它
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech", "https://github.com/EasyA-Community"]
- 提交您的PR!✅
那么,何时应该添加仓库?只有当以下条件满足时,您才需要将仓库直接添加到生态系统中
- ✅ 它不属于已列在生态系统文件(即
.toml
文件)中的 GitHub 组织 - ✅ 它本身不是生态系统/子生态系统(在这种情况下,您会将其添加为生态系统)
通常会被添加为单个仓库的项目类型包括
- 文档
- 钱包
- 实用库
- 较小的协议
通常这些将是社区创建的仓库(因此不属于生态系统/子生态系统GitHub组织下的已记录仓库)。在这里将其作为一个粗略的启发式方法。如果你添加的仓库实际上属于同一生态系统中的许多仓库之一,实际上组织只贡献了这个生态系统,那么你几乎肯定应该添加你的组织。
如果你认为应该添加这个仓库,那么请按照以下步骤操作。让我们以GitHub用户名Platonicsocrates
的社区贡献者为示例,他创建了一个为EasyA Chain
的辅助库,同时也为其他项目做出贡献(因此我们不应添加他们的整个组织/个人资料)。他们的仓库URL为https://github.com/platonicsocrates/easya-helpers
。
添加它的步骤如下
- 转到
data/ecosystems
目录 - 找到名为你要添加的仓库所属生态系统名称首字母的文件夹。这里,它是字母
E
,因为我们的生态系统被称为EasyA Chain
。 - 打开文件夹。这里,它是
E
文件夹。 - 在文件夹中找到具有生态系统名称的
.toml
文件。在这里,按照我们的EasyA Chain
示例,它将是easya-chain.toml
。生态系统完整路径为data/ecosystems/e/easya-chain.toml
。 - 打开此文件。在生态系统文件中,您将看到类似的内容
title = "EasyA Chain"
github_organizations = ["https://github.com/EasyA-Tech"]
- 只需在
.toml
文件的末尾添加以下三行
[[repo]]
url = "https://github.com/platonicsocrates/easya-helpers" # Replace this URL with your repo url
tags = [ "Library"] # This line is optional
如果生态系统中已经存在其他仓库,只需像上述那样将其添加为新行(与添加组织或子生态系统不同,这些不是列表)。例如,如果生态系统中已经有一个仓库,我们将在以下内容中添加它
# Repo that's already been added
[[repo]]
url = "https://github.com/platonicsocrates/easya-js"
tags = [ "Library"]
# Our new repo
[[repo]]
url = "https://github.com/platonicsocrates/easya-helpers" # Replace this URL with your repo url
tags = [ "Library"] # This line is optional
- 提交您的PR!✅
感谢您的贡献和阅读贡献指南!❤️
依赖项
~4.5–6MB
~124K SLoC