一段改写的超级账本的链码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174/* * 改编自 IBM 的源码示例。 */package mainimport ( "bytes" "fmt" ...
OOM Killer
Linux 内核有个 OOM (Out of Memory) Killer 的机制,可以在系统内存不足的时候,通过主动杀死一些进程来释放更多的内存空间。 很多时候,可以 ping 通一台服务器,但无法 ssh 上去,因为 sshd 被 OOM Killer 杀掉了。ping 能 ping 通,是因为处在内核态协议栈还能工作,发出回送报文。sshd 则因为是用户态进程,直接被干掉了。 OOM Killer 工作流程 OOM Killer 的完整工作流程如下: graph TD A[系统内存不足] --> B{是否触发 OOM?} B -->|是| C[遍历所有进程] B -->|否| Z[继续正常运行] C --> D[计算每个进程的 oom_score] D --> E[应用 oom_score_adj 调整] E --> F[选择分数最高的进程] F --> G{是否启用 OOM Killer?} G -->|否| H[系统挂起...
支付业务
支付牌照是金融体系里唯一还在卖的交易拍照。 金融业务分为三大类:银行、保险、证券。 银行业分为表内和表外的业务。支付是银行业的一部分。 是不是计入资产负债表–表内、表外业务。 表外业务是银行的服务业务,毛利高。 支付是表外业务。 互联网三大赚钱业务(变现场景对应支付的三个工具): 游戏(支付工具)。 广告(大数据量级几张)。 互联网金融(电子账户和实名认证)。把银行账户体系电子化了。 货币最终是由国家发行的,铸币权是国家权力的体现。后来出现电子化货币,简化了票据类银行业务。 支付基础概念 电子支付是在付款银行和收款银行之间的货币债权转移。 支付体系的构成–基于银行卡体系的四方模式: 发卡方(服务商户,提供银行卡/二维码) 商户 收单方(服务商户。老式的 pos 机是要拓片留印记的。pos 机/摄像头) 清算方(卡组的清算机构,国内是银联,国外就是 VISA 和 MASTARCARD。银行之间形成交易指令集–形成记账。央行的清算系统来调拨真正的钱的流动。头寸只要足够,不需要准备足够多的现金。)。 四方模式既涉及支付体系,也涉及金融...
破解本博客不能部署的问题
试着生成公钥,然后一定要记得把 pubkey 粘贴到 github 的 setting 里然后用ssh ping github ssh -T git@github.com,即使返回错误也不要紧。 改用这个github 的部署地址: repo: git@github.com:magicliang/magicliang.github.io。
Linux hypervisor
hypervisor 可以被认为等于 virtual hardware。他们的出现,可以有效减少硬件服务器数量。 常见的 hypervisor 分成两类: 直接运行在硬件上的,基于内核的虚拟机。 OS as hypervisor。典型例子是 KVM。KVM 是被集成到 Linux 内核之中的完整虚拟化解决方案。 运行于另一个操作系统之上。典型的例子是 QEMU 和 WINE。 hypervisor的实现,总是要映射一些磁盘设备和网络设备的。
MariaDB 调优相关
本文主要摘译自这里。 MySQL 曾经有独立的公司。但那间公司后来被 Sun 微系统公司获取了。 Sun 微系统公司又被 Oracle 获取了。原 MySQL 开发者担心 MySQL 成为闭源软件,因此成立了一家SkySQL 公司维护开源的 MySQL 分支–MariaDB。 MariaDB 支持的存储引擎包括: InnoDB/XtraDB 后者是前者的加强版,属于事务性存储引擎,也叫 ACID-compliant(ACID 遵从的)。XtraDB 是 Percona 开发的存储引擎,整体向下兼容。使用普通的 mysqldump 会耗尽 cpu(因为要把数据库转化成正经的 SQL 语句)。而 xtrabackup 在大库上的备份、还原、冗余都表现得更好(因为像 Oracle 一样是二进制备份吗?)。 TokuDB。另一个事务性存储引擎。以高压缩率著称(最高25倍压缩)。适合小空间存储大数据。 MyISAM。MySQL 上最古老的存储引擎。非事务性存储引擎,只支持表级锁,不支持 MVCC。 SphinxSE。非事务性存储引擎。这名字和古希腊猜谜语的怪兽,斯芬克斯一样。本以上是用...
KOA 初探
KOA 是 express 的进化版。都是被作者玩腻了扔掉的东西。 它简化了各个中间件层面的工作,提供了高级的“糖”,把各个中间件转化为了函数。 123456789101112131415161718192021222324252627282930313233const Koa = require('koa');const app = new Koa();// x-response-timeapp.use(async (ctx, next) => { const start = Date.now(); // 到这里就停住了运行,让下一个中间件函数运行。 await next(); // 从下一个中间件函数那里返回 const ms = Date.now() - start; ctx.set('X-Response-Time', `${ms}ms`);});// loggerapp.use(async (ctx, next) => { ...
如何把 composer 锚定到 e2e 的复杂网络
下载并进入/blockchain-explorer 项目。 cd fabric-docker-compose-svt。 download_images.sh(不要让 start.sh 代劳,要用特定的版本)。 ./start.sh 建立这个隐藏文件夹 /Users/magicliang/.composer-credentials,如果里面有内容要先清空。 把公私钥导入这个文件夹,注意最后一个 keystore 的私钥可能会变化: 1composer identity import -p explorer -u PeerAdmin -c /Users/magicliang/Desktop/Programming/git/blockchain-explorer-cp/fabric-docker-compose-svt/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem -k /Users...
Cello 在 mac 上需要特别注意的几个问题
/opt/cello 和 /opt/cello2 以及下面的 mongo 和 fabric-1.0 都尽量把 owner 和 group 改成当前用户名和当前用户名组名。然后把这两个子文件夹用 docker file sharing 打开。 docker 会对 cello 下的 file sharing 有很麻烦的冲突影响。解决方法是建立一个 cello2 文件夹,然后在 cello 项目下用以下脚本把 fabric-1.0 的文件夹迁移过去: 1234#!/usr/bin/env bashARTIFACTS_DIR=/opt/cello2sudo cp -r ./src/agent/docker/_compose_files/fabric-1.0 ${ARTIFACTS_DIR}sudo chown -R ${USER}:${USERGROUP} ${ARTIFACTS_DIR} 然后修改 vi .//src/agent/docker/docker_swarm.py,把 COMPOSE_PRO...
以太坊相关研究资料
《以太坊的 gas 费率一览表》 《以太坊学习笔记:私有链搭建操作指南》 《以太坊中的账户、交易、Gas和区块Gas Limit》 StackOverflow 上的问答:以太坊主链到底需要多大空间? StackOverflow 上的问答:怎样提供无限次数的智能合约操作? 《区块链技术-智能合约-以太坊 (译文)》 《以太坊官方文档》 《以太坊私有链搭建指南》 《以太坊关于搭建私有网络的 wiki》 《预充值以太坊资金的方法》。注意看 carchrae 的回复,这里面也提供了拷贝私钥复用私钥的方法,可以考虑在多节点的情况下使用。 《一本与参数有关的介绍怎样搭建私链的 gitbook》。 StackOverflow 上的问答:以太坊的网络难度是否可以静态锁死?注意看它还有个相关的子问题。如果网络算力的稳定的话,应该不会出现难度增长才对。 值得大读特读的 geth 的文档。特别是挖矿、账户管理的部分。 geth 的命令行选项。注意,有些选项在当前版本中已经消失了,如(gpomin、gpomax)。 StackOverflow 上的问答:如何降低测试网络中的难度。感觉没多大用。 搜索以...















