34 个版本 (17 个破坏性更新)
0.18.1 | 2024 年 7 月 12 日 |
---|---|
0.17.5 | 2024 年 6 月 16 日 |
0.14.1 | 2024 年 3 月 31 日 |
0.12.2 | 2023 年 12 月 23 日 |
0.1.0 | 2023 年 6 月 18 日 |
#269 在 数据结构
每月 514 次下载
在 4 crates 中使用
295KB
5.5K SLoC
Blockchain Commons Gordian Envelope for Rust
由 Wolf McNally 编写
简介
Gordian Envelope 协议定义了一种用于层次化二进制数据的结构化格式,专注于以隐私为中心的方式进行传输。信封旨在简化“智能文档”,并具有以下独特功能:易于表示各种语义结构、内置的类似 Merkle 的摘要树、使用 CBOR 的确定性表示,以及文档持有者可以选择性地加密或省略文档的特定部分,而不会破坏包括摘要树在内的文档结构或任何依赖它的加密签名。
入门
[dependencies]
bc-envelope = "0.18.1"
规范
Gordian Envelope 目前在 此 IETF 互联网草案 中定义。
Gordian 原则
Gordian Envelope 是一个参考实现,旨在展示 Gordian 原则,这些原则是 Blockchain Commons Gordian 技术的哲学和技术基础。这包括
- 独立性。
如何体现独立性
- 隐私。
如何体现隐私
- 弹性。
如何体现弹性
- 开放性。
如何体现开放性
Blockchain Commons 应用不发送“回家”调用,也不运行广告。一些应用可通过各种应用商店获取;所有应用均可在我们的代码仓库中使用。
移除 本 部分 除非 本 它是一个参考 APP MEANT TO DEMONSTRATE GORDIAN PRINCIPLES
状态 - 社区评审
目前,Gordian Envelope 处于社区评审阶段。我们非常欢迎您考虑和/或测试这些库。显然,如果您发现任何错误或问题,请告知我们。同时,也请告知我们API是否符合您的需求,功能是否易于使用,Rust的使用是否感觉得到了适当的标准化,以及这个库是否解决了您在进行此类编码时遇到的问题。同时,也请告知我们如何改进以及您还需要哪些其他功能以使其符合您的使用需求。您可以在Gordian 开发者社区中发表评论。
由于此库仍处于社区评审阶段,在没有进一步测试和审计之前,不应将其用于生产任务。
版本历史
路线图
来源、作者、版权 & 许可
除非另有说明(无论是在此/README.md还是在文件的头部注释中),否则本仓库的内容版权©2020 Blockchain Commons, LLC,并受许可的约束,许可协议为spdx:BSD-2-Clause Plus Patent License。
在大多数情况下,每个文件的作者、版权和许可都位于源代码中的头部注释中。如果没有,我们已尝试在下表中准确归因。
下表还确定了来自此仓库之外的仓库中包含的文件的原产地(来源仓库、永久链接和提交ID)。这些文件的贡献者列在各个仓库的提交历史中,首先是该仓库的提交历史中的更改,然后是来自其来源仓库的提交历史中的更改。
文件 | 来源 | 提交 | 作者 & 版权(c) | 许可 |
---|---|---|---|---|
exception-to-the-rule.c 或 exception-folder | https://github.com/community/repo-name/PERMALINK | https://github.com/community/repo-name/commit/COMMITHASH | 2020 Exception Author | MIT |
依赖项
要构建Gordian Envelope,您需要使用以下工具
- autotools - 来自自由软件基金会的Gnu构建系统(简介)。
其他先决条件包括
...
库
以下外部库与Gordian Envelope一起使用
- community/repo-name — 该库的功能(使用OR分支[版本]OR包含[版本])。
库可能被标记为 use(使用库的当前版本),
fork(已分支特定版本到BCC仓库以使用),或
include(包含特定版本的文件)。
源自...
此Gordian Envelope项目要么源自,要么受到以下项目的启发
- community/repo-name/ — 由开发者或从社区实现的仓库。
后续使用
改编自...
这些都是改编、转换和包装,使Gordian Envelope可用于其他语言
- community/repo-name/ — 由开发者或从社区(语言)实现的仓库。
用于...
这些都是直接使用Gordian Envelope的其他项目
- community/repo-name/ — 由开发者或社区创建的库,功能是做什么(使用 OR 分支 [版本] OR 包含 [版本])。
库可能被标记为 use
(我们库的当前版本被使用),fork
(我们库的特定版本已被分叉用于使用),或 include
(我们库特定版本的文件已被包含)。
与...一起使用
这些是与 Gordian Envelope 一起工作或利用其的项目。
- community/repo-name/ — 由开发者或社区创建的库。
财务支持
Gordian Envelope 是 Blockchain Commons 的一个项目。我们自豪地是一个致力于开源和开放开发的“非营利”社会公益公司。我们的工作完全由捐赠和与您这样的人的协作伙伴关系资助。每一份捐赠都将用于构建开放的工具、技术和方法,以维持和推进区块链和互联网安全基础设施,并促进开放网络。
为了进一步支持 Gordian Envelope 和其他项目的财务发展,请考虑通过成为GitHub Sponsor的持续每月赞助者来成为 Blockchain Commons 的赞助者。您还可以在我们的BTCPay Server上使用比特币来支持 Blockchain Commons。
项目赞助商
感谢我们的项目赞助商对 Gordian Envelope 的支持
$sponsor-logo-with-link
$sponsor-description
贡献
我们鼓励通过问题和拉取请求进行公开贡献!请查阅CONTRIBUTING.md以了解我们开发过程的详细信息。此存储库的所有贡献都需要 GPG 签名的贡献者许可协议。
讨论
讨论 Blockchain Commons 和其项目的最佳地方是我们的 GitHub 讨论区域。
Gordian 开发者社区。对于想要讨论互操作钱包规范的标准化和开源开发者,请使用Gordian 开发者社区存储库的讨论区域。这是您讨论 Gordian 规范(如Gordian Envelope)、bc-shamir、分片秘密密钥重建、bc-ur,以及更大的Gordian 架构、其原则(如独立性、隐私、弹性和开放性),以及其宏架构思想(包括断网,这个社区的原名)的地方。
戈尔迪安用户社区。这里是戈尔迪安参考应用的用户,包括 戈尔迪安协调器,戈尔迪安种子工具,戈尔迪安服务器,戈尔迪安钱包,以及我们一系列的 CLI 应用 的聚集地。这是一个讨论错误报告和功能请求,以及探讨我们的参考应用如何体现 戈尔迪安原则 的地方。
区块链共同体讨论区。对于区块链共同体的开发者、实习生和赞助者,请使用 社区仓库 的讨论区来讨论区块链共同体的通用问题、实习生项目或其他非 戈尔迪安开发者社区 或 戈尔迪安用户社区 覆盖的话题。
其他问题 & 问题
作为开源、开放开发的社区,区块链共同体没有资源直接支持我们的项目。请将讨论区视为一个可能得到问题答案的地方。或者,请使用本仓库的 问题 功能。不幸的是,我们无法保证响应时间。
如果您的公司需要支持使用我们的项目,请直接联系我们了解选项。我们可能能够提供来自我们贡献者的支持合同,或者我们可能能够指引您到其他可以提供所需合同支持的组织。
致谢
以下人员直接为这个仓库做出了贡献。您可以参与其中,并将您的名字添加到这里。第一步是学习如何从我们的 CONTRIBUTING.md 文档中了解如何贡献。
姓名 | 角色 | GitHub | 电子邮件 | GPG指纹 |
---|---|---|---|---|
Christopher Allen | 主要架构师 | @ChristopherA | <[email protected]> | FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED |
Wolf McNally | 贡献者 | @WolfMcNally | <[email protected]> | 9436 52EE 3844 1760 C3DC 3536 4B6C 2FCF 8947 80AE |
负责任披露
我们希望使所有软件对每个人都安全。如果您发现了安全漏洞,我们感谢您以负责任的方式向我们披露。遗憾的是,我们目前无法提供赏金。
我们要求您提供善意,并尽最大努力不泄露信息或损害任何用户、他们的数据或我们的开发者社区。在您发布之前,请给我们一定的时间来修复问题。在发现过程中不要欺诈我们的用户或我们。我们承诺,如果研究人员尽力遵守这些指南,我们将不会采取法律行动。
报告漏洞
请通过电子邮件私下报告疑似安全漏洞至 [email protected](请不要用此电子邮件寻求支持)。请不要为疑似安全漏洞创建公开可见的问题。
以下键可用来向开发者传达敏感信息:
姓名 | 指纹 |
---|---|
Christopher Allen | FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED |
您可以通过运行以下命令并使用该个人的指纹来导入密钥: gpg --recv-keys "<fingerprint>"
确保将包含空格的指纹用引号括起来。
依赖项
~21MB
~368K SLoC