文章
全部技术笔记,按发布时间排序。
Go 无文件引入配置到构建程序
程序运行时需要引入一些配置信息,比如需要一个 password 信息。 一般而言有两种方式:1. 使用环境变量 2. 使用配置文件 运行结果: 不过还可以通过硬编码到运行程序内进行, 通过使用 ldflags 参数传入 build 或者 run 里就可以了, 具体参数说明: importpath 这里是在 main 包
mongodb update 策略
mongo update() 指令包含是三个参数,如下所示: 假设有如下数据: 如果使用 update 命令执行如下语句: 这里 update 文档仅仅是 kv 数据,而不包含任何“更新运算符”,那么会替换整个文档,但 \id 字段不会被更新。这个时候 update 文档也被称为“替换文档”。 但如果 update 参
使用 Go 进行 Solidity ABI 编解码
类型对应关系 | 类型 | Solidity | Go | | ---------------- | -------- | ------------------ | | 字符串 | string | string | | 布尔 | bool | bool | | 地址 | address | common.Addres
Dockerfile COPY 和 ADD 指令区别和使用规则
ADD 和 COPY 指令在 Dockerfile 中具有相同的功能,都是将构建上下文的文件复制到镜像中去,具体语法规则如下所示,可以说在大多数情况下,二者仅仅是语义上的区别。 其中 src(下称源路径) 和 dest(下称目标路径) 参数可以是目录或者文件,下面使用具体事例来说明具体的规则。 新建一个文件夹,具体包含
禁用 Mac 内置键盘和触控板
最近买了个键盘,大小刚好能放在 13 英寸的 MBP 上,这样打字就舒服了很多。但是存在一个问题,直接放在上面有时候会触发内置键盘的按键。 解决方式就是禁用内置键盘,找了好多解决方案,结果都不能使用,最后找到这个软件 tekezo/Karabiner-Elements。安装后会安装两个软件,一个 Karabiner-E
搭建比特币测试环境
这是我正在写的一个电子书《比特币应用开发指南》,这是第一章的搭建测试环境的一小节。 --- 搭建比特币节点 本书使用 BitcoinCore 0.16.3 和 Ubuntu 16.04 作为示例。 下载 运行下列命令下载 BitcoinCore 0.16.3 压缩包 检验下载 下载校验和文件 下载完成后使用以下命令验证
Nodejs 多线程以及线程池教程
Nodejs v11.7.0 发布后,wokerthreads API 就进入基本稳定状态,不需要在运行时候加上 --experimental-worker 标识了。 worker 对于执行 CPU 密集型操作非常有用,但对 I/O 密集型操作没有多大帮助,使用内置异步 I/O 操作效率更高。 API 简介 创建一个
node.js Buffer 与 BigInt 类型互转
node.js 中的 Buffer 是使用 Uint8Array 实现的,所以可以认为是 Golang 中的 []byte 类型。 不过在 Golang math 包中 []byte 和 math.BigInt 类型是可以互转的。 在之前的 BigInt 尝鲜 一文中,介绍了 BigInt 的用法,虽然 BigInt
分享:我是如何为公司追回价值 8 百万人民币的虚拟货币的
几个月之前,钱包部门的同事和我说有一个 ERC20 Token 无法进行转账,转账交易发出去后是交易成功了但是余额没有变化,然后给我发了交易的 txid 让我来看看有没有解决办法。在 etherscan 上查看这个交易状态是成功的,但是并没有发出 ERC20 Transfer 事件,而是一个 RejectedPayme
开始使用 Go Module
开始使用 Go Module Go 的包管理方式是逐渐演进的, 最初是 monorepo 模式,所有的包都放在 GOPATH 里面,使用类似命名空间的包路径区分包,不过这种包管理显然是有问题,由于包依赖可能会引入破坏性更新,生产环境和测试环境会出现运行不一致的问题。 从 v1.5 开始开始引入 vendor 包模式,如