test

testest

go mod 依赖管理

本文介绍了 Go 语言的依赖管理工具 go mod,它通过模块化的方式来管理项目的依赖关系。文章详细阐述了 go mod 的基本概念、如何启用模块化、go.mod 文件的结构以及常用命令。此外,还介绍了 go.sum 文件的作用、Go 模块版本控制、Go 模块代理的配置方法,以及一个简单的 Go 模块项目的工作流程示例。最后,总结了 go mod 的主要功能和特点,包括初始化模块、下载更新依赖包、清理未使用的依赖等,并强调了 go.mod 和 go.sum 文件在依赖管理中的重要性。

阅读更多

拜占庭将军问题(实用拜占庭容错)

拜占庭将军问题是一个分布式系统中的协议问题,描述了当部分参与者(如将军)可能是恶意或叛徒时,如何保证所有参与者达成一致决策。此问题由莱斯利·兰伯特提出,是点对点通信中的基本问题,用于模拟在存在消息丢失的不可靠信道上通过消息传递达成一致性的困难。拜占庭将军问题提供了一个模型,反映了在硬件错误、网络阻塞或恶意攻击下,计算机和网络可能表现出不可预测的行为。拜占庭容错算法(BFT)旨在解决这类问题,确保在节点出错或行为恶意时,系统仍能正常运作。这种容错性表现在即使部分节点出现问题,系统也能继续执行大多数节点的共同决定。拜占庭容错机制是区块链、分布式系统等领域的重要组成部分,它确保了系统的安全性和活性。拜占庭容错算法通常要求系统中节点数量和身份预先确定,并需要在每次节点变化时对网络进行初始化。因此,它们不适用于像工作量证明(PoW)这样的开放网络。然而,基于BFT的权益证明(PoS)共识算法是一个例外,它结合了BFT和公有链的特性。

阅读更多

文献总结

完整性验证

完整性验证的本质用户首先对数据进行预处理,保存一些私有验证元数据,然后将文件发送给服务器存储。在验证完整性时用户向服务器发送挑战,服务器根据挑战返回给用户证明,用户验证证明的正确性。
验证证明时通常是判断某两个值是否相等,其中一个值是根据服务器返回的证明构造的,另一个值是用户根据私有的验证元信息构造的,这里通常使用的技术有双线性映射、同态验证标签等。

阅读更多

dig命令

dig(Domain Information Groper)是一个用于查询DNS域名服务器的灵活工具。它可以执行DNS搜索并显示从请求的域名服务器返回的答复。dig命令通常用于DNS问题的故障诊断,因其灵活性好、易用以及输出清晰而受到DNS管理员的青睐。用户可以指定多种选项来定制查询,例如指定查询的DNS服务器、查询类型、源IP地址等。此外,dig还支持批处理模式,可以从文件中读取并处理一系列搜索请求

阅读更多

DNSSEC详解

DNSSEC

参考资料

DNS 客户端不能确信来自给定 DNS 名称服务器的回复是真实的,且未被篡改。DNS 协议没有为客户端提供了一种机制来确保它不受中间人攻击。引入 DNSSEC 以解决使用 DNS 解析域名时缺少身份验证和完整性检查。它没有解决保密性的问题。DNSSEC 通过向现有 DNS 记录添加加密签名,确保域名系统的安全性。这些数字签名与 A、AAAA、MX、CNAME 等常见记录类型一起存储在域名服务器中。当用户发送DNS查询请求时,DNS服务器会返回数字签名和相应的资源记录,接收到DNS响应后,客户端会使用相应区域的公钥对数字签名进行验证,以确保DNS查询的完整性、真实性和认证性。

阅读更多

DNS服务器

DNS服务器

本地域名服务器

本地域名服务器也叫做递归域名服务器、递归解析服务器等,当一个主机发出DNS查询请求时,会首先请求本地域名服务器,再由本地域名服务器进行递归查询

阅读更多

DNS记录

DNS记录

DNS 记录(又名区域文件)是位于 DNS 服务器中的指令,提供一个域的相关信息,包括哪些 IP 地址与该域关联,以及如何处理对该域的请求。这些记录由一系列以所谓的 DNS 语法编写的文本文件组成。DNS 语法是用作命令的字符串,这些命令告诉 DNS 服务器执行什么操作。此外,所有 DNS 记录都有一个 “TTL”,其代表生存时间,指示 DNS 服务器多久刷新一次该记录。

阅读更多