3月31刚辞职准备放松下自己找找下一个方向,路途中看完了《黑客与画家》这本书,让我颇有共鸣。 首先是黑客这个词的定义,在大众眼里,黑客就是一个非法侵入计算机的罪犯。而在作者眼里,黑客是那些技术超群的程序员,这些人向往着自由,喜欢挑战,不愿意被防火墙挡住,想要在计算机的世界中自由的穿梭。我觉得我的性格被作者描述的大差不差,我在工作中也喜欢有挑战的工作,我也总是主动去承担一些探索性的工...
Node.js对接招行支付国密算法SM2加解签问题
业务需求需要对接招行支付,在对接过程中遇到了一个问题,就是招行支付的签名算法是国密算法 SM2,第一次接触这个算法但是对接支付经验丰富的我还是第一时间去找相关的库来完成报文的加签解签。不一会我就找到了相关库sm-crypto.看完文档觉得没啥问题,直接开干. 结果刚开始就遇到了第一个问题,招行提供的开发(测试)环境的公钥是:”MFkwEwYHKoZIzj0CAQYIKoEcz1UB...
如何构建一个 C2C NFT 交易市场
我写的 C2C NFT 交易市场项目已经上线了,已经稳定运行了一段时间了。这也是对我来说非常有成就感的事情,所以准备详细的介绍下整个项目的交易流程的从0到1的设计和实现。后端项目使用的技术栈是 Node.js + TypeScript + Nest.js + MySQL + Redis + kubenetes。消息队列使用的是 Redis 的 Stream 实现的。 交易流程图的梳理 ...
如何在上链前确定一笔交易的transaction hash
1.发现的问题 在做区块链项目的时候,一个核心的问题就是如何保证链上数据和数据库数据的数据一致性。比如一个订单,用户在购买后到发货。到底是先去链上 mint nft 给用户后再把订单状态改成已发货还是先改成已发货再去链上 mint nft 发送给用户? 2.分析问题 我们来分析下这两个情况 先 mint 后改订单状态,这会导致用户在链上已经拥有了 nft,但是数据库中的订单状...
我的2022年终总结
1. 2022 年终总结 2022年算是一个我过得非常复杂的一年,有3件事情对我影响比较大吧。一是今年和女朋友分手了,二是公司上线的项目没走下去,三是因为疫情影响在家远程办公了一年,所以下半年搬家去了南昌住了半年体会了下二线城市的生活,体验了下岁月静好。 也可能是工作太忙了疏忽了女朋友的感受,大大小小吵架不少。最终还是没有走到最后,加上最后6月份公司的项目最后还是没有运营下去了,这两...
使用 minikube 搭建 kubernetes 集群
本文使用的系统架构为Ubuntu 20.04/22.04, CPU架构为x86-64. kubectl 版本为1.23.0, minikube版本为1.28.0 1.安装kubectl kubectl 是 kubernetes 的操作工具, 不管是 kubernetes 还是的 minikube,都用 kubectl 进行操作.阿里云上的 kubernetes 只需要给 kubect...
minikube(k8s)日志持久化方案
测试环境为了跟线上环境保持一致以及更好的配合CD以及bug定位所以k8s pods 的日志持久化就很有必要了.接下来是傻瓜式教程跟着输入命令就能实现minikube pods 的日志收集功能. 要注意的是,你的应用日志需要输出到 stdout 中.是指你需要安装到的 k8s 那个命名空间.使用默认配置的话请参考步骤1和步骤2 (推荐).使用自定义配置的话请参考步骤1和步骤3 ...
对于 Promise.all() 的误解
今天在做一个需求的时候 sequelize 抛出了这样的一个问题 Error: commit has been called on this transaction(724d4efa-4707-4931-bf7e-5172eb7e5b49), you can no longer use it. 后来分析发现自己原来一直对 Promise.all() 的使用有些误解. 简单讲下业...
重新理解 Node.js 事件循环
以前我对于 Node.js 的事件循环只有一个模糊概念, 就是 Node.js 执行完毕同步任务后(我理解的同步任务是指,在当前调用栈中执行的代码,而异步任务是指在在当前调用栈中被放置在回调函数里面的代码), 如果同步任务有回调, 那么就丢到事件循环队列中去.同步任务执行完毕后再去执行队列中的回调. 但是最近总是在想一个问题, Node.js 的事件循环有一个问题, 既然是队列,那肯定...
我的2021年终总结
1.前言 首先回顾下2020年终总结中的新年展望的完成情况 补充下 Linux 相关知识 (已经掌握常用的 Linux 命令, 现在开发环境已经完全是在 ubuntu 上了) 学会 CI 自动化的一些东西 (熟练使用 Github Action 的 CI/CD) 学会使用Docker (熟悉了常用的 Docker 命令, 并且能使用 Docker 来搭建开发环境) ...