https://cdn.jsdelivr.net/gh/wefantasy/FileCloud/img/fantasy-r.png

2023年终总结

一直都没有年终总结的习惯,不过看大家总结的生活都比较丰富,那便也开始总结一下吧。 工作 虽然网上有很多负面评论,但综合考量后七月初还是正式入职当

SD-WAN技术详解之IPsec协议

通常 IP 协议是没有任何的安全措施的,其中各字段都以明文形式在互联网传播,虽然有“首部校验和”这样的字段来提供极其简易的完整性验证,但也无力抗拒对数据的意外或者故意修改,更无法阻止信息的泄露等问题。IPSec(Internet Protocol Security)能够很好解决上述问题,它是由 IEIF 设计的一种端到端的确保 IP 层通信安全的机制,它是一组协议而不是一个单独的协议,是 IPv6 的组成部分也是IPv4的可选扩展协议。目前 IPSec 最主要的应用是构造虚拟专用网(VPN),它作为一个第三层隧道协议实现了 VPN 通信,可以为 IP 网络通信提供透明的安全服务,保证数据的完整性和机密性,有效抵御网络攻击。本文详细介绍了 IPsec 的意义和特性,研究了其核心子协议 IKE、AH、ESP 的主要内容和作用,分析了 IPsec 多种运行模式及其各自特点和应用场景。

Golang 交叉编译和条件编译详解

通常情况下某平台编译的代码只有该平台能够运行访问,若拷贝到其他平台可能会因为无法识别文件格式而无法运行。欲使代码能够在目标平台运行,只能专门编写面向目标平台的代码并在该平台编译,这虽然能够实现目的,但毫无疑问跨平台性肯定是非常差的。交叉编译是直接在一个平台上生成另一个平台上的可执行代码,比如在 Windows 平台上开发的程序可以编译生成 Linux 和 MAC 平台的可执行文件。Java 是通过 JVM 来提供跨平台的支持,但 JVM 的臃肿会在一定程度上增添性能损耗,而 Golang 提供了更为方便简洁的交叉编译功能。

Fyne 定制扩展部件详解

Fyne 目前是 Golang 中最流行的 UI 库之一,但是流行不意味着好用,不仅官方文档十分简洁(简陋),网络资源也少得可怜,特别是关于定制扩展部件方面。针对上述问题,本文在使用 Fyne 定制部件方面结合官方文档做了一些探索:首先对定制部件需实现的相关接口进行介绍;其次设计了一个包含文字、背景、鼠标事件等多个特性的部件,对其进行了简单实现,并且详细介绍了其中的关键步骤和实现过程。

SD-WAN技术详解之综述

摘要 本文详细介绍了 SD-WAN 的发展背景及其所解决的问题,在此基础上进一步对 SD-WAN 的一般架构进行分解论述,包括其逻辑架构、功能模块等,并且对相关术语进行了

Hyperledger Fabric 使用 CouchDB 和复杂智能合约开发

在上个实验中,我们已经实现了简单智能合约实现及客户端开发,但该实验中智能合约只有基础的增删改查功能,且其中的数据管理功能与传统 MySQL 比相差甚远。本文将在前面实验的基础上,将 Hyperledger Fabric 的默认数据库支持 LevelDB 改为 CouchDB 模式,以实现更复杂的数据检索功能。此外,对上个实验的简单智能合约进一步进行功能上和设计上的扩展,最终实现了智能合约的分包、分页查询、多字段富查询、查询交易历史记录等功能。

label studio 结合 MMDetection 实现数据集自动标记、模型迭代训练的闭环

一个 AI 方向的朋友因为标数据集发了篇 SCI 论文,看着他标了两个多月的数据集这么辛苦,就想着人工智能都能站在围棋巅峰了,难道不能动动小手为自己标数据吗?查了一下还真有一些能够满足此需求的框架,比如 cvatdoccanolabel studio 等,经过简单的对比后发现还是 label studio 最好用。本文首先介绍了 label studio 的安装过程;然后使用 MMDetection 作为后端人脸检测标记框架,并通过 label studio ml 将 MMDetection 模型封装成 label studio 后端服务,实现数据集的自动标记[^1];最后参考 label studio ml 示例,为自己的 MMDetection 人脸标记模型设计了一种迭代训练方法,使之能够不断随着标记数据的增加而跟进训练,最终实现了模型自动标记数据集、数据集更新迭代训练模型的闭环。

Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例

在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发。本文将在前面实验的基础上,首先尝试使用 Go 语言开发了一个工作室联盟链的项目信息智能合约,并成功将其部署至联盟链上;然后依据官方示例,使用 fabric-gateway 模块实现了一个能够管理项目信息智能合约的客户端;之后对比了 fabric-gateway 模块和 fabric-sdk-* 模块各自的优缺点,分析官方示例源码实现了通过 fabric-sdk-* 模块管理整个联盟链网络。一般语境下,本文默认智能合约等于链码。