如何开始为 Utreexo 做出贡献
哈喽!今天心血来潮给大家带来了《如何开始为 Utreexo 做出贡献》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!
您是否遇到过一个令人兴奋的开源项目,您很想为它做出贡献,但您不知道如何开始?或者您可能是一位相对经验丰富的开发人员(或者只是更精通开源的人),希望为令人兴奋的开源项目做出贡献?好吧,我已经回答了您关于“我如何开始为开源做出贡献”的问题。
从技术上讲,我不会一般意义上回答这个问题。本文会更偏向于一个具体的开源项目utreexo。所以,我想这篇文章的目的是回答“我如何开始为 utreexo 做出贡献?”这个问题。
那么如果 utreexo 首先呢?
好吧,如果你在这里,我假设你从某个地方听说过 utreexo,或者至少你知道它是一个与比特币相关的项目。如果您从未听说过,那也没关系,我会尝试对其进行更多分解,并提供相关链接,但是,强烈建议您对比特币的工作原理有较高的了解,以便更好地理解这篇文章.
无论如何,为了回答上面的问题,让我们先介绍一下 utreexo 想要实现的目标的背景。
我们所知道的比特币网络(或者……还不知道)将所有交易的记录存储在数字分类账中,称为区块链。该分类账包含网络上已进行的所有交易的记录。然而,网络的当前状态不一定包含网络上发生的所有事情的历史,而是由所有未花费交易输出(utxo 集)的集合组成。该集合包含有关“哪个钱包有什么”的信息。简单来说,utxo 集基本上只包含比特币钱包账户中有多少比特币的记录。嗯,最后一句话不是很准确,因为我们的比特币钱包通常有多个未花费的交易输出,这些输出组合起来就反映了我们的钱包余额以及可花费的金额。
问题是,随着网络上交易数量的增加,这种比特币状态增长得更快、更大。这带来了一个重大的可扩展性问题,因为更大的规模需要更大的硬件资源,这可能会阻止一些人操作比特币节点以及其他缺点。
这就是 utreexo 发挥作用的地方。
所以我们再次问,“utreexo 是什么”? utreexo 是一种通过提出基于哈希的动态加密累加器并引入仅存储状态的累加器表示的紧凑状态节点来大大减少运行完全验证节点所需的存储的方法。这些节点需要发送者提供额外的包含证明,然后才能验证交易,
使用 utreexo,网络的当前状态以更小的尺寸表示,这意味着更少的资源使用,这将鼓励几乎任何人方便地运行节点。您可以从以下资源 eli5 中阅读有关 utreexo 的更多信息:utreexo — 扩展解决方案,或使用 utreexo 改进比特币网络,或从此处下载 utreexo 白皮书。
设置您的开发环境
现在我们对 utreexo 了解更多了,让我们开始设置我们的开发环境。
utreexo 是用 go 编写的,因此拥有 go 编程语言的基本知识和理解将是额外的好处。但是,如果您是 go 新手,您可以查看这些资源以了解有关该语言的更多信息,并了解该语言的一些基本概念有效 go,学习 go。
我在这篇文章中使用 visual studio 代码,但请随意使用您选择的任何文本编辑器。
首先,我们需要安装 go 编程语言。这里不介绍安装步骤,但是你可以查看这篇文章,详细介绍了如何安装和运行go程序。下载并安装 go。一旦你完成安装 go,按照文章并通过检查
go版本
我们可以继续克隆代码库。掌握 git 的基本知识在这里会很有帮助。首先,我们需要在我们的计算机系统上安装git。要检查 git 是否已安装,您可以打开一个新的终端或 powershell 窗口并输入
git –版本
如果安装了 git,您将看到带有版本号的输出。如果没有,您必须继续使用安装 git 中的指令来安装 git。
之后,您可以尝试命令
git –版本
再次。如果 git 已成功安装,我们现在可以继续分叉和克隆存储库。
分叉存储库基本上意味着在我们的个人 github 帐户上创建存储库的副本。此后我们所做的更改将被推送到我们的分叉存储库,然后我们可以提交拉取请求。
要克隆存储库,我们导航到所需位置并在终端中打开。或者我们可以直接使用终端进行导航。
例如,假设我们的桌面上有一个名为“projects”的文件夹,我们希望 utreexo 代码驻留在其中,我们只需导航到桌面,然后打开“projects”文件夹,在其中右键单击并选择对于 windows 和 ubuntu,“在终端中打开”。或者我们可以直接在终端窗口内导航
首先,通过导航确保我们位于系统的根目录中。
cd~
然后
cd 桌面/项目
在这里,我们需要克隆存储库。这里需要稍微考虑一下。当您访问 github 上的 utreexo 主组织时,我们有几个存储库。其中之一是 utreexo 存储库,其中包含实际的动态累加器实现,然后是 utreexod 存储库,它是支持 utreexo 的比特币全节点实现。我们将重点关注后者,即 utreexo 支持的比特币全节点实现。让我们继续 fork 然后克隆存储库
要分叉存储库,我们转到 utreexod 存储库 github 页面,在最右侧,我们将找到“分叉”按钮。
我们需要单击此按钮,然后按照屏幕上的说明进行操作。完成后,我们的个人 github 帐户将拥有此存储库的相同副本。
现在我们可以继续从我们的个人帐户克隆存储库
git 克隆 https://github.com/yourgithubusername/utreexod.git
完成后,我们可以使用文本编辑器打开该文件夹,然后按照 github 存储库的描述继续安装所有依赖项。现在我们进来了。
从这里开始,我们将需要花一些时间,了解代码库的各个部分以及每个部分的职责。一旦您对代码库有了大致的了解,您就可以继续检查存储库的“问题”部分,以找到您想要解决的任何问题,或者可能是功能建议。
一旦确定,我们创建一个新分支并正确命名该分支
git branch feature1 git checkout feature1
这里,“feature1”是我们要开发的功能的名称。给它一个更具描述性的名字。
一旦我们完成了我们的功能并觉得它已经准备好了,我们就会提交并推送到 github,然后提出拉取请求。
为了提交,我们首先使用
进行更改git 添加.
然后继续提交
git commit -m “提交消息”
提交消息应该是所做更改的简短描述,并且应该放在引号内,如上所述。
如果您使用 vscode,git 扩展确实简化了所有这些过程。
如果您需要更多关于如何提交更改并将其推送到 github 的资源,请检查此资源,以及创建拉取请求,您也可以在此处查看。
发出拉取请求后,我们等待维护者的更新,一旦所有内容都已排序,并且可能请求了更多更改,拉取请求将被合并,然后......就这样。您已成功为 utreexo 做出贡献
像这样的开源贡献是主要软件的驱动源,为开源做出贡献非常重要,因为您对数以万计的用户使用的软件进行了更改。这种贡献带来了高度的满足感。从这里开始,建议继续与其他社区成员和维护者建立关系,并继续定期为软件做出贡献。
好了,本文到此结束,带大家了解了《如何开始为 Utreexo 做出贡献》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

- 上一篇
- 构建可扩展的 Azure 静态 Web 应用程序来处理高流量网站

- 下一篇
- 国家能源局:今年 7 月全社会用电量 9396 亿千瓦时,同比增长 5.7%
-
- Golang · Go教程 | 4小时前 |
- Debian上Zookeeper数据恢复攻略及步骤
- 471浏览 收藏
-
- Golang · Go教程 | 8小时前 | Goroutine GOMAXPROCS context 调度机制 M:N模型
- Go语言Goroutine调度机制详解与常见问题
- 491浏览 收藏
-
- Golang · Go教程 | 9小时前 |
- Debian上Hadoop监控工具及方法推荐
- 381浏览 收藏
-
- Golang · Go教程 | 9小时前 |
- Go语言sync.Once在复杂场景下的正确使用及常见问题分析
- 253浏览 收藏
-
- Golang · Go教程 | 9小时前 |
- Debianbacklog会引发安全漏洞吗?
- 362浏览 收藏
-
- Golang · Go教程 | 11小时前 |
- Debian上Tigervnc共享文件的绝妙技巧
- 363浏览 收藏
-
- Golang · Go教程 | 13小时前 |
- Go语言切片与数组易混淆问题深度解析
- 229浏览 收藏
-
- Golang · Go教程 | 13小时前 |
- Go语言time.Ticker与time.After使用差异及问题详解
- 297浏览 收藏
-
- Golang · Go教程 | 1天前 |
- DebianMessage移动端使用体验及评测
- 220浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 毕业宝AIGC检测
- 毕业宝AIGC检测是“毕业宝”平台的AI生成内容检测工具,专为学术场景设计,帮助用户初步判断文本的原创性和AI参与度。通过与知网、维普数据库联动,提供全面检测结果,适用于学生、研究者、教育工作者及内容创作者。
- 23次使用
-
- AI Make Song
- AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
- 33次使用
-
- SongGenerator
- 探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
- 30次使用
-
- BeArt AI换脸
- 探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
- 33次使用
-
- 协启动
- SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
- 36次使用
-
- Golangmap实践及实现原理解析
- 2022-12-28 505浏览
-
- 试了下Golang实现try catch的方法
- 2022-12-27 502浏览
-
- Go语言中Slice常见陷阱与避免方法详解
- 2023-02-25 501浏览
-
- Golang中for循环遍历避坑指南
- 2023-05-12 501浏览
-
- Go语言中的RPC框架原理与应用
- 2023-06-01 501浏览