08 2023 档案
摘要:本文是区块链浏览器系列的第五篇,项目完整代码在[这里](https://github.com/mengbin92/browser/tree/main)。 在[上一篇文章](https://mengbin.top/2023-08-20-browser2/)中给浏览器增加了简单的用户认证,至此浏览器的基
阅读全文
摘要:`go embed` 是 Go 1.16 中引入的特性,它允许将文件嵌入到 Go 代码中,以便在运行时访问这些文件。这对于将静态资源(如 HTML、CSS、JavaScript 文件)直接嵌入到 Go 二进制文件中,以及简化文件分发和部署非常有用。下面是关于 `go embed` 的详细介绍: **
阅读全文
摘要:在 gRPC 中使用 JWT(JSON Web Tokens)进行身份验证是一种常见的做法,它可以帮助你确保请求方的身份和权限。下面是一种使用 gRPC 和 JWT 进行身份验证的步骤: 1. **生成和签发 JWT:** 在用户登录成功后,你需要生成一个 JWT 并将其签发给用户。JWT 中可以包
阅读全文
摘要:`fsnotify`是一个用Go编写的文件系统通知库。它提供了一种观察文件系统变化的机制,例如文件的创建、修改、删除、重命名和权限修改。它使用特定平台的事件通知API,例如Linux上的inotify,macOS上的FSEvents,以及Windows上的ReadDirectoryChangesW。
阅读全文
摘要:批量删除指定前缀的Key有两中方法,一种是借助 `redis-cli`,另一种是通过 `SCAN` 命令来遍历所有匹配前缀的 key,并使用 `DEL` 命令逐个删除它们。 ## redis-cli 使用 Redis 自带的 `redis-cli` 命令行工具,你可以通过以下方式批量删除指定前缀的
阅读全文
摘要:## 简介 Hyperledger Fabric的Idemix是一个基于密码学的身份混淆系统,它提供了一种在区块链网络中实现用户隐私的方法。Idemix的主要特性是它的零知识证明系统,这是一种允许用户证明他们拥有某些属性,而无需透露任何其他信息的技术。 以下是一些更详细的关于Idemix的信息: 1
阅读全文
摘要:本文是区块链浏览器系列的第四篇。 在[上一篇文章](https://mengbin.top/2023-08-13-blockBrowser/)介绍如何解析区块数据时,使用`session`对客户端上传的pb文件进行区分,到期后自动删除。 在这片文章中,会着重介绍下认证系统的实现,主要分为三部分: -
阅读全文
摘要:`gosec` 是一个用于在 Go 代码中查找安全问题的开源工具,它可以帮助发现可能的漏洞和潜在的安全风险。以下是关于 `gosec` 的详细介绍: ## 1. 工具概述: `gosec` 是一个静态分析工具,用于扫描 Go 代码以查找潜在的安全问题。它可以识别常见的代码漏洞、敏感信息泄露和其他安全
阅读全文
摘要:`google.golang.org/protobuf/encoding/protojson` 是 Go 语言中的一个库,用于处理 Protocol Buffers(protobuf)和 JSON 之间的转换,遵循[https://protobuf.dev/programming-guides/pr
阅读全文
摘要:`Memcache` 是一个高性能、分布式的内存缓存系统,常用于缓存数据库查询结果、API调用结果、页面内容等,以提升应用程序的性能和响应速度。下面详细介绍一些 `Memcache` 的特点和使用方式: 1. **内存缓存:** `Memcache` 是一种基于内存的缓存系统,数据存储在内存中,因此
阅读全文
摘要:本文是区块链浏览器系列的第三篇,本文介绍区块链浏览器的主体部分,即区块数据的解析。 这一版本的[区块链浏览器](https://github.com/mengbin92/browser/tree/gin)是基于[gin](https://github.com/gin-gonic/gin)实现的,只提
阅读全文
摘要:Protobuf(Protocol Buffers)和 JSON 都是数据序列化格式,但它们在许多方面有着显著的不同。以下是对两者的一些主要比较: 1. 数据大小和速度: - Protobuf:由于 Protobuf 是二进制格式,因此它生成的数据通常比 JSON 小很多,这使得 Protobuf
阅读全文
摘要:要在Redis中启用认证,您需要在Redis配置文件中设置`requirepass`指令。以下是步骤: 1. 找到Redis配置文件。这通常是`redis.conf`,可能位于`/etc/redis/`或`/etc/`目录中,或者在您安装Redis的目录中。 2. 打开配置文件并找到`require
阅读全文
摘要:Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息: - **中间件的定义**:在Gin中,中间件是
阅读全文
摘要:原文在[这里](https://go.dev/blog/go1.21)。 > 由Eli Bendersky, on behalf of the Go team 发布于 8 August 2023 Go团队今天非常高兴地发布了Go 1.21版本,你可以通过访问[下载页面](https://go.dev
阅读全文
摘要:Go语言的泛型是在Go 1.18版本中引入的一个新特性,它允许开发者编写可以处理不同数据类型的代码,而无需为每种数据类型都编写重复的代码。以下是关于Go语言泛型的一些关键点: 1. 泛型是通过在函数或类型定义中使用类型参数来实现的。类型参数可以被看作是一个特殊的类型,它可以在函数或类型定义中的任何位
阅读全文
摘要:MySQL的索引是一种数据结构,它可以帮助数据库系统更高效地获取数据。以下是MySQL索引的一些主要特性和使用方法: 1. **索引类型**:MySQL支持多种类型的索引,包括B-Tree索引、哈希索引、全文索引、空间索引等。其中,B-Tree索引是最常用的索引类型。 2. **创建索引**:你可以
阅读全文
摘要:GORM(Go Object-Relational Mapping)是一个用于Go语言的ORM库,它提供了一种简单、优雅的方式来操作数据库。GORM支持多种数据库,包括MySQL、PostgreSQL、SQLite和SQL Server。以下是GORM的一些主要特性: 1. **全功能ORM**:G
阅读全文
摘要:在gRPC中,可以通过将文件分割成多个小块,然后使用流式RPC将这些小块发送到服务器来传输文件。以下是一个简单的示例,展示了如何在gRPC中实现文件传输。 首先,我们需要定义一个服务来处理文件传输。在`.proto`文件中,我们可以定义一个`UploadFile`服务,它接收一个流式的`Chunk`
阅读全文
摘要:原文在[这里](https://go.dev/blog/govulncheck) > 原文作者:Julie Qiu, for the Go security team 发布于 13 July 2023 我们很高兴地宣布,govulncheck v1.0.0 已经发布,同时还发布了用于将扫描集成到其他
阅读全文
摘要:### 什么是 Solidity? Solidity 是一种用于编写智能合约的高级编程语言,主要用于以太坊平台。智能合约是一种在区块链上自动执行的计算机程序。Solidity 使开发人员能够创建可靠和安全的智能合约,这些合约可以用于多种用途,例如去中心化应用(DApps)的创建、数字资产的管理等。
阅读全文
摘要:在 Protocol Buffers (protobuf) 中,可以使用特定的选项来指定生成的 JSON 标签。通过在消息定义中使用 `[(json_name)]` 选项,可以控制生成的 JSON 字段名称。这样可以确保 Protocol Buffers 和 JSON 之间的互操作性。 下面是一个示
阅读全文