About Me
Experience
Golang Engineer
Unknown - - Now
职位: Golang Engineer | 时间段: 1 year | 工作内容: 硬件钱包对接和开发:1.对接 cosmos、aptos、arweave、atom、cardano、conflux、dash、doge、bch、solana、sui、terra、ton 等链的钱包功能,实现所有钱包相关的地址生成、发送交易、扫块、余额查询、交易信息查询等功能,并且保证钱包稳定运行。2.钱包的测试,基于 docker 容器,模拟 ledger wallet 硬件钱包环境。使用 speculos + ledger-app-builder 手动编译不同公链的硬件钱包的可执行文件,并通过生成 apdu 指令完成钱包测试。
Golang Engineer
garan伽蓝 - - Now
职位: Golang Engineer | 时间段: Unknown | 工作内容: 项目基本介绍:•garan 是一个基于 web3 的线上佛教平台,主要实现线上的一些佛教信徒每日功课和听法师讲课等相关业务。用户注册成功后会生成一个用户关联的 NFT,NFT 能够展示用户的等级和经验等。允许用户通过每日的活动累计相关经验值提升自身的等级,更高的等级能让用户参与代币池的瓜分,代币池定期释放代币,根据用户 NFT 等级来换算用户能获取多少的代币。用户自身的 NFT 可在平台交易等相关功能。项目整体架构:•项目的后端整体分为业务段、合约端、业务端相关的子服务等。采用 mysql 做为数据库,redis 来实现缓存,kafka 做为消息服务。合约端采用 solidity + truffle + OpenZeppelin 实现。业务端架构采用 golang + goframe + gorm 实现,配合 go-redis、kafka-go、go-sql-driver/mysql 等中间件实现业务端数据存储缓存和消息通信。多个子服务同业务端服务采用相同的架构,在 goframe 中以控制台程序的方式实现。项目整体工作流程:项目整体工作流程是合约端编写相关合约代码并部署到 polygon ,业务端通过abigen 将合约生成的 ABI 文件转换成 golang 代码,并且通过 go-ethereum 获取 eth 网络的 client,根据abigen 生成的 go 方法的方式调用合约代码完成相关业务的链上功能。各子服务主要实现定时或者轮询的方式定期扫描 eth 的区块,更新并同步链上相关的结果到 mysql 中,并通过 kafka 发布消息到其它服务订阅者,服务订阅者根据消息的结果处理相关业务。职责:1. 完成前期的数据库文档编写和数据库结构的设计,编写相关接口文档并提供 swagger 接口定义。2. 完成基础合约 ERC20 token 相关的代币铸造、转账,提款等业务。3. 完成 ERC721 合约的 NFT 升级和累加经验功能。4. 完成后端整体业务的编码与合约端接口的对接工作。5. 实现多个子服务,完成对链上数据的扫块,并将相关结果同步到业务数据库中。6. 服务的部署和测试,将完成的业务端服务和多个子服务部署到测试环境的 docker 容器中,测试各个服务之间的通讯问题。