孙 辉

技能

  • 熟悉 Golang, 理解 Golang 编程特性,如 goroutine, channel 等,阅读过 Golang runtime 部分的源代码,理解 Golang 的并发机制
  • 熟悉 Docker、Kubernetes,理解 Docker 的基本原理,有 Kubernetes 的使用经验
  • 使用过的其他编程语言: Python; Javascript; C/C++
  • 熟悉 Linux、AWS 等开发环境
  • 能够突破高级编程语言层面的限制,了解 x86 平台下的汇编,了解 Unix/Linux 环境下下的 C 语言系统编程
  • 对操作系统原理有一定认识,目前正在研读xv6源代码
  • 有 Web 前后端完整的知识体系,了解 HTML/CSS/Javascript 等前端知识,有 Vue 的使用经验
  • 熟练使用 Git 进行版本控制
  • 熟悉基本的数据结构和算法
  • 英语水平 CET-6,熟练使用 Google/StackOverflow/Wikipedia, 能够从源头搜集研读英文技术资料,并输出英文技术文档

项目经验

OpenNESS(Open Network Edge Service Software)

2020 年 7 月 - 今

OpenNESS是一个基于Kubernetes的开源边缘应用程序管理系统,使服务提供商和企业能够在任何网络的边缘上构建、部署和操作自己的边缘应用程序,支持通过简易的方式将运行在 Telco/Public Cloud 中的APP迁移到边缘。

2020 年 7 月 - 2020 年 8 月

OpenNESS 部分核心微服务组件的单元测试的开发,将代码单元测试覆盖度提高到100%,开发语言为Golang。

  1. 在开发过程中测试并发现项目成员通过go.mod引入的bug。
  2. 引入monkey patch 工具,将常规流程下测试框架无法测试覆盖的代码分支覆盖。
2020 年 9 月 - 2020 年 11 月

OpenNESS 应用落地预研,主要是 Hyperledger 开源项目下 Avalon1 和 Fabric2 这两个子项目的 Ramp-Up,以及支撑 Avalon 在 OpenNESS 中落地的 开源第三方 Intel K8s Device Plugin3 和 K8s Add-on NFD(Node Feature Discovery)4 的调研。

这个应用落地的大体构想是,区块链的方案采用Fabric, 用 Avalon 对接 Fabric 处理链下数据,同时在 Avalon 端采用 TEE 模式提供可信计算,TEE 具体采用 Intel SGX(Software Guard Extensions)指令集扩展以及相关支撑软件,包括SGX PSW(Platform Software)、Intel K8s SGX Device Plugin 以及 NFD 和 定制的 NFD SGX 扩展插件, 而又因为Fabric 以及 Avalon 都是分布式计算平台,通过两者结合并利用OpenNESS做边缘部署以及管理,从而展现 OpenNESS 在区块链和可信计算场景下的能力。

在预研过程中:

  1. 研读 Fabric 和 Avalon 项目官方文档,了解 Fabric 和 Avalon 整体架构,根据业务逻辑流程走读了 Avalon 的代码,了解待计算数据上链并通过 Avalon 做链下计算的流程。
  2. 部署 Fabric 测试集群,部署 Avalon, 基于Intel SGX 硬件平台,搭建了一套完整的软硬件验证环境,测试验证了整个可信计算的流程。
  3. 研读 Intel SGX 官方文档,了解 SGX 概念,为正确使用 Intel K8s Device Plugin 以及 NFD 做知识储备。
  4. 研读 Intel K8s Device Plugin 的SGX相关部分源代码,以及 NFD 的源代码,搭建测试环境,部署评估如何使用两者在 OpenNESS 上使能 SGX。
  5. 输出了 Avalon Ramp-up 和 SGX NFD 两份技术slide,以及若干技术说明文档。
2020 年 11 月 - 2021 年 04 月

参与 EMCO(Edge Multi-Cluster OrChestrator)与 OpenNESS 的集成开发,保证任务在关键时间节点正常交付。EMCO 是一个提供多集群云原生应用部署功能的软件框架,集成到OpenNESS中是为了增强其边缘部署能力。

工作内容:

  1. 迅速完成 EMCO 的 Ramp-Up, 接手已有的工作,理清开发任务,与EMCO项目国外的开发人员协作,完成 OpenNESS 自动化集成工具的 ansible 脚本开发。
  2. 协调EMCO集成工作中涉及的其他模块(Harbor 和 Smart City)集成开发人员的工作,确保任务顺利推进。
  3. 完成相关自动化脚本以及输出内部测试文档,并协助测试人员工作。
  4. 解决测试人员和组外人员使用集成工具时上报的Bug。
2021 年 05 月 - 今

参与 PWEK(Private Wireless Experience Kit)All in One 的集成开发,PWEK All in One 是 SE(Smart Edge Open) 平台的一个子项目。SE 底层基于K8s以及Intel相关的硬件,利用ansible实现自动化部署边缘服务器端计算环境,PWEK All in One 在 SE 的基础上,向边缘服务器端部署5G核心网数据平面和控制平面的。

工作内容:

  1. 负责 PWEK 在 SE 上的 整体的 ansible playbook 设计以及 ansible 脚本开发
  2. 负责 PWEK All in One 开发测试过程中, ansible 脚本的调试,以及在部署过程中涉及到的K8s, Docker故障的定位和修复,对涉及故障的相关开发人员提交的修复代码做code review。

XTAR

2019 年 7 月 - 2019 年 12 月
基于区块链的去中心化的交易系统

项目简介

XTAR 是以 VRF(可验证随机函数算法)和 PBFT(实用拜占庭容错算法)为基础来实现 DPOS(Delegated Proof of Stake,委任权益证明)机制的去中心化价值交易平台。独有的两阶段共识算法,提高了整个系统的区块出块速度,并通过 native 系统合约实现了链上治理,保证了共识的民主公平。

主要职责

  • XTAR 系统对等网络层(P2P 网络层)的功能重构和性能优化
  • XTAR 底层代码的交叉 review
  • XTAR 系统 Bug 排查修复
  • XTAR 系统生态圈内后端服务的开发
  • 基于 XTAR 系统 SDK 的系统流程测试开发

技术细节

  • 开发语言为Golang
  • 网络层第三方库为libp2p
  • 将 XTAR 系统生态圈内后端服务的开发系统 P2P 网络层由结构化 P2P 网络(采用 Kademlia 算法实现)修改为无结构化 P2P 网络以提高网络中节点查找性能
  • 在 XTAR 系统 P2P 层进行节点网络质量管理,利用 EWMA(指数加权移动平均法)记录的 Peer 节点的 RTT(Round-Trip Time,往返时延)的统计值,对当前节点的 Peer 做排名
  • 在 XTAR 系统 P2P 层实现消息限流功能,预防消息过载导致的节点崩溃
  • 在 XTAR 系统 P2P 层实现协程池,以降低 GC 压力提升系统性能
  • 搭建 XTAR 系统 docker 集群的开发调试的环境
  • XTAR 系统 native 系统合约测试流程开发
  • XTAR 系统在线 IDE(集成开发环境)后端部分的开发

Linkeychain 公链系统

2018 年 6 月 - 2019 年 2 月
基于DPOS的区块链公链

项目简介

Linkeychain 是第二代区块链系统,支持智能合约,授权股权证明机制 DPOS,为公司的区块链商业应用提供底层技术支撑。

主要职责

  • 搭建基于区块链的底层服务
  • 负责公链系统的p2p网络层的搭建和维护

技术细节

  • 开发语言为Golang
  • 参考开源项目星云链
  • 基于第三方p2p网络库libp2p做的开发,该第三方的库提供了开发p2p网络服务所需的数据结构和函数

ConSpace 对象存储系统

2017 年 5 月 - 2017 年 10 月
基于Ceph的对象存储系统

项目简介

ConSpace 一个基于Ceph的网盘系统

主要职责

  • 开发环境中Ceph集群的搭建部署
  • 开发环境中Ceph对象存储系统的搭建部署
  • 基于Ceph对象存储提供的Amazon S3兼容的 RESTful 接口开发Django后端逻辑

技术细节

  • 采用了 Python 第三方库boto3requests,在Ceph对象存储系统提供的与 Amazon S3 兼容的 RESTful 接口上,完成了 Http 协议层的 AWSv4 签名认证,以及与对象存储相关的文件操作功能和对象存储层用户信息的管理
  • Django管理 ConSpace 对象存储系统业务层数据
  • 前后端分离,Django逻辑层采用Django REST framework为前端提供json格式数据

工作经历

瞬联软件科技(北京)有限公司上海分公司

  • 2020 年 7 月 - 今

  • 系统集成软件工程师

    • 边缘计算云平台软件集成开发
    • 边缘计算云平台应用落地预研

上海启日信息技术有限公司

  • 2019 年 7 月 - 2019 年 12 月

  • Golang 开发工程师

    • 区块链底层功能开发
    • 服务器后端开发

链极智能科技(上海)有限公司

  • 2018 年 6 月 - 2019 年 3 月

  • 软件开发工程师

    • 研究区块链协议及运行机制
    • 参与底层实现,并编写网络应用层代码

内蒙古君正互联网小额贷款有限公司

  • 2017 年 11 月 - 2018 年 5 月

  • Python 开发工程师

    • 使用 shell,python 编写公司内部工具,并进行维护
    • 在 AWS 云平台上管理服务器和应用,编写运维相关的文档、手册、流程,制定安全、备份、统计策略

上海容数信息科技有限公司

  • 2017 年 5 月 - 2017 年 10 月

  • Python 后端开发工程师

    • 学习研究 Ceph(一种开源分布式文件系统)
    • 通过 Ceph 的对象存储接口,基于 Django 开发文档内容管理系统

自雇

  • 2013 年 9 月 - 2017 年 4 月 打理自家的商业业务

中航华东光电(上海)有限公司

  • 2012 年 3 月 - 2013 年 9 月

  • FPGA 工程师

    • 参与项目前期技术调研,负责硬件系统中 FPGA 部分通信接口协议的编码、测试工作
    • 设计了基于 FPGA 的某型设备外部驱动电路模块,实现了 UART 通信协议到 I2C 通信协议解析转换功能,使硬件系统能够通过该模块和 I2C 总线接口器件进行数据通讯。

教育经历

  • 华中科技大学,软件工程(硕士) 2012 年毕业
  • 武汉理工大学,电子信息工程(本科) 2008 年毕业

注释


  1. Avalon (Python/C++) 则是一个可信计算(TCF, Trusted Compute Service)框架,旨在为区块链提供链下可信计算,在取保交易的安全性和弹性的同时,解决可扩展性和隐私性等痛点。 支持授信执行环境(TEE,Trusted Execution Environment)、零知识证明(ZKP, Zero Knowledge Proofs)和多方计算(MPC, Multi-Party Compute)。 ↩︎

  2. Fabric (Golang) 是一个区块链领域里带有准入机制的企业级联盟链项目, 其核心共识组件已经由 Kafka消息队列集群 升级到 CFT(Crash Fault Tolerance) 的 Raft 集群,未来将继续进化到 PBFT(Practical Byzantine Fault Tolerance)集群 以便增强其区块链的去中心化属性。 ↩︎

  3. Intel K8s Device Plugin 主要是以定制 K8s 系统Pod controller 的形式,给 K8s 集群增加 发现 worker node 硬件feature 的能力,有一定的运维自动化特点。 ↩︎

  4. NFD 则是通过常规的部署 K8s 应用Pod 的形式,给 K8s 集群 提供发现 worker node 硬件feature 的能力,但是提供扩展接口,能够灵活定制 发现 worker node 硬件feature 的时采用的策略。 ↩︎