自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@毛宏斌

随便记录一些东西,有用的没用的、方方面面;

  • 博客(111)
  • 资源 (13)
  • 收藏
  • 关注

原创 图解Fabric--账本结构

文章目录一、账本二、世界状态三、区块链3.1 区块3.2 交易一、账本Fabric账本有两部分组成:世界状态:存储在DB中,可以认为是当前区块链的一个快照,方便查找。区块链:由区块组成的链,区块内是交易。二、世界状态三、区块链3.1 区块3.2 交易...

2020-04-23 13:35:36 1429

原创 IPFS节点对外入口

一、启动日志Initializing daemon...go-ipfs version: 0.4.23-Repo version: 7System version: amd64/darwinGolang version: go1.13.7Swarm is limited to private network of peers with the swarm keySwarm key f...

2020-04-22 13:53:01 4723

原创 Hyperledger Fabric v2.x 最新资料汇总

官方Github:https://github.com/hyperledger/fabric文档:https://hyperledger-fabric.readthedocs.io/en/latest/whatis.htmlJira:https://jira.hyperledger.org/projects/FAB/summary解析

2020-04-22 13:22:36 1250 1

原创 Libra源码分析:分层确定性钱包的实现

文章目录1. 概述2. 钱包架构3. 钱包初始化4. 钱包导入、导出5. 秘钥派生新账户6. 总结博客链接:https://hello2mao.github.io/2019/12/29/libra-wallet/1. 概述libra-wallet是libra的钱包模块,模块位置:client/libra_wallet.libra-wallet是一个分层确定性钱包。什么是分层确定性钱包可...

2019-12-29 21:05:18 1082

原创 Libra客户端使用

1. libra net1.1. test net1.2. local net2. CLI cmd2.1. client help2.2. client example2.3. CLI cmd3. account3.1. account help3.2. account create3.3. account list3.4. account write3....

2019-12-29 13:22:14 1406

原创 稀疏默克尔树(Sparse Merkle Tree)

1. 默克尔树1.1. 默克尔树的存在证明1.2. 默克尔树的不存在证明2. 稀疏默克尔树2.1. 稀疏默克尔树的存在证明2.2. 稀疏默克尔树的不存在证明3. Ref博客链接:https://hello2mao.github.io/2019/12/05/Sparse-Merkle-Tree/1. 默克尔树Merkle 树的叶子是数据块的 hash 值。非...

2019-12-05 10:23:39 1776

原创 Libra源码分析:账号创建流程

1. 引言2. 客户端2.1. 启动客户端2.2. CLI 创建账户2.3. client入口2.4. account命令的执行2.5. create命令的执行2.6. GRPC Client3. 服务端(Validator节点)3.1. Validator入口3.2. AC UpdateToLatestLedger3.3. storage-client3.4....

2019-12-03 21:15:00 1779

原创 Quorum新的权限模型

1. 概述2. 新的权限模型概览3. 实现原理4. 启动5. API博客链接:https://hello2mao.github.io/2019/12/02/quorum-permission-model/1. 概述Quorum在最新发布的v2.3.0中增强了区块链的权限模型,详见v.2.3.0在以前的版本中,节点的许可管理是通过静态文件管理的。当节点启动时,如果设置了–...

2019-12-03 21:13:34 672

原创 Sidetree协议

1. 概述1.1. Sidetree1.2. DID2. Sidetree 协议2.1. 协议概述2.2. 工作原理2.3. Sidetree 协议的 DID 操作2.3.1. DID OP2.3.2. Batch File 和 Anchor File2.4. Sidetree REST API3. Sidetree 协议 的 Node.js 实现3....

2019-12-03 21:07:51 1047

原创 在macOS上运行bitcoin客户端

1. 安装比特币客户端2. 启动客户端,并同步testnet2.1. 新建bitcoin.conf2.2. 启动客户端3. 常用命令3.1. getnetworkinfo3.2. getpeerinfo3.3. getblockchaininfo3.4. listaddressgroupings3.5. listunspent3.6. getwalletinfo...

2019-12-03 21:00:49 1741

原创 NEO(小蚁)Seraph ID调研

1. 概述2. 解析2.1. 工作流程2.2. 密码学相关3. 参考1. 概述近日,据外媒报道,NEO 携手瑞士最大的电信运营商瑞士电信(Swisscom)的子公司 Swisscom Blockchain,合作推出 Seraph ID 新技术——一个基于 NEO 底层技术的自主身份(SSI)框架。报道详见:https://cryptoinfos.eu/decentra...

2019-12-03 20:56:12 320

原创 ArcBlock Decentralized Identifier 解析

一、背景1.1 ArcBlock1.2 DID1.3 ArcBlock DID二、特性三、产品试用3.1 本地搭建 DApps Workshop3.2 创建 DApp3.3 创建 DID 以及使用 DID四、ArcBlock DID 认证协议4.1 DID Schema4.2 DID Auth 流程4.2.1 获取 Deep Link4.2.2 Req...

2019-12-03 20:47:45 441

原创 预言机(Oracle)

一、概述受限于区块链的共识模型,智能合约只能调用内部合约,无法直接与外部系统进行交互。将智能合约与外部系统打通,有助于区块链技术更进一步扩展应用场景。区块链预言机(Oracle)是区块链与外部世界交互的一种实现机制,它在区块链与外部世界间建立一种可信任的桥接机制,使得外部数据可以安全可靠地进入区块链。1.1、为什么需要区块链上的智能合约和去中心化应用(Dapp)对外界数据拥有交互需求当智...

2019-07-17 09:51:00 10883

原创 解析Solidity预编译合约的实现

在Solidity中存在很多预先编译好的合约(或者说是方法)可供调用,例如sha256、keccak256等,本文简单分析下其实现逻辑。例如有如下测试合约,在测试合约内调用sha256:pragma solidity ^0.4.24;contract Sha256Test { uint256 time = 123; event hashResult(bytes32); ...

2019-02-14 10:06:40 2860

原创 解析Quorum -- 摩根大通的企业级区块链解决方案

概述架构隐私性方案概述案例一案例二实现细节Quorum组件Tessera组件共识算法RaftLifecycle of a TransactionBlock RaceSpeculative MintingIBFT节点的许可管理更高的性能TPS测试参考概述Quorum是基于以太坊的Golang实现go-ethereum开发...

2019-02-13 14:38:35 2893

原创 Kubernetes:从Cloud Provider到Cloud Controller Mananger全解析

Kubernetes 是一个云原生平台,但为了让 Kubernetes 能够更好的运行在公有云平台上,能够灵活的使用、管理云上其他的基础资源和基础服务,云厂商需要实现自己的适配器。本文详细解读了 Kubernetes 从 Cloud Provider 到 Cloud Controller Mananger 的演变过程及其实现细节,希望有助于大家更好的在公有云平台上构建基于 Kubernetes 的容器服务。

2018-08-08 21:54:25 4699 2

原创 Android okhttp3 底层网络实现解析

一、概述okhttp3是Android应用层开发最常用的网络库之一,本文详细追踪解释okhttp3底层网络的实现,从DNS=>TCP=>SSL。二、总目录(Android okhttp3 DNS 底层实现追踪(一))[https://blog.csdn.net/hello2mao/article/details/53158520](Android okhttp3 DNS...

2018-07-29 13:59:21 3320

原创 Ethereum-ERC721智能合约和Dapp实践--以太猫CryptoKitties的简单实现

一、概述二、设计目标三、游戏界面四、游戏系统设计4.1 交易系统4.1.1 帐号4.1.2 产品4.1.3 买卖交易4.2 繁育系统4.3 对战系统4.4 喂养系统4.5 升级系统五、合约设计5.1 合约关键细节5.1.1 产品数据结构5.1.2 DNA属性5.1.3 繁育&喂养5.1.4 对战5.1.5 升级一、概述...

2018-07-27 17:21:52 2061

原创 【笔记】大规模Kubernetes集群的Service性能优化

一、Ref二、k8s的Service与Endpoint三、iptables实现Service负载均衡3.1 iptables介绍3.2 iptables实现流量转发与负载均衡3.3 iptables在kubernetes中的应用举例四、当前iptables实现存在的问题一、Ref【1】华为云在 K8S 大规模场景下的 Service 性能优化实践 【2】PPT...

2018-05-24 13:12:21 3270

原创 Kubernetes cluster-autoscaler 解析

CA( cluster-autoscaler)是用来弹性伸缩kubernetes集群的。我们在使用kubernetes集群经常问到的一个问题是,我应该保持多大的节点规模来满足应用需求呢? cluster-autoscaler的出现解决了这个问题,它可以自动的根据部署的应用所请求的资源量来动态的伸缩集群。

2018-05-23 14:37:22 7974

原创 以太坊的硬分叉

1.太坊中的硬分叉是什么?硬分叉是一种对以太坊底层协议的改变,为了升级系统来建立新的规则。所有的以太坊客户端都需要被升级;不然他们会被困在一条不被兼容且遵循旧协议的老链。区块链系统的去中心化特性使得硬分叉升级变得困难。在一条区块链中进行硬分叉需要整个社区的合作与沟通,同时也需要各个以太坊客户端的开发者们进行合作,使得整个分叉过程变得流畅。2.作为一个用户,需要做些什么?下载最新版本的以...

2018-05-22 22:26:11 10581

原创 以太坊的难度(Difficulty)计算

一、什么是难度难度(Difficulty)一词来源于区块链技术的先驱比特币,用来度量挖出一个区块平均需要的运算次数。难度(Difficulty)通过控制合格的解在空间中的数量来控制平均求解所需要尝试的次数,也就可以间接的控制产生一个区块需要的时间,这样就可以使区块以一个合理而稳定的速度产生。当挖矿的人很多,单位时间能够尝试更多次时,难度就会增大,当挖矿的人减少,单位时间能够尝试的次数变...

2018-05-22 22:21:16 10337

原创 从源码解析以太坊地址的生成过程

一、获得一个以太坊钱包地址通过以太坊命令行客户端geth可以很简单的获得一个以太坊地址,如下:[work@host]$ geth account newINFO [05-22|10:17:57] Maximum peer count ETH=25 LES=0 total=25Your new account is locked with ...

2018-05-22 11:38:12 5376

原创 为k8s集群的节点预留计算资源

一、需求Kubernetes版本:v1.8.6 原因:默认情况下 pod 能够使用节点全部可用容量。如果用户pod中的应用存在异常,例如疯狂占用内存,那么这些pod将与node上的系统守护进程和k8s组件争夺资源并导致节点资源短缺,从而产生node not ready问题。二、解决方案:Node Allocatablekubelet Node Allocatable用来为Kub...

2018-05-08 15:53:58 4887

原创 在主网上部署和调用以太坊智能合约

一、概述在主网上部署和调用以太坊智能合约主要分为以下几步: (1)连接主网 (2)部署合约 (3)调用合约二、连接主网通过运行在主网中的节点所提供的RPC连接主网。使用geth命令在本地运行一个连接主网的全节点,geth会尝试持续连接网络上的节点直到找到一个对等体,如果节点运行在一台面向互联网的服务器上,那么节点也会接受来自其它节点的连接请求。需要暴露部分管理API以供合...

2018-04-25 09:56:41 1807

转载 NAT

一、概述NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP地址空间的枯竭。二、DNAT和SNATDNAT Destination Network A...

2018-04-17 21:30:19 278

原创 Solidity生成随机数及其安全性

一、概述使用Solidity编写合约的时候,难免需要随机数,本文记录一种简单的方法,同时也看到此方法存在安全方面的问题。二、随机数简单生成法使用keccak256哈希函数。// 生成一个0到100的随机数:uint randNonce = 0;uint random = uint(keccak256(now, msg.sender, randNonce)) % 100;...

2018-04-11 14:40:21 8500

转载 区块链词汇表

51%攻击当加密货币网络中超过一半的计算能力由一个单一个体或群组所控制时,如果该个体或群组有恶意的话,他们可能会发出一些相矛盾的交易来破坏网络。地址在网络上发送或接收交易。一个地址通常是以一串字母数字字符的形式呈现。专用集成电路ASIC是‘专用集成电路’的简称。通常,与图形处理器(GPU)相比,ASIC专门用于挖矿,且可能会大大节约能源。比特币比特币是在全球...

2018-04-11 14:03:19 932

原创 使用Helm在k8s集群上部署以太坊私有链

一、概述二、部署流程三、问题记录四、部署检查五、参考一、概述使用k8s官方的包管理工具helm部署以太坊私有链并启动三类节点和一个前端服务:bootnode: used for Geth node discoveryethstats: Ethereum Network Statsgeth-miner: Geth miner nodesgeth-tx:...

2018-03-30 00:38:39 1599

原创 Hyperledger Fabric v1.1.0 macOS部署开发者环境并创建第一个Fabric网络

一、安装所需软件1.1 安装curlbrew install curl1.1 安装Docker下载并安装Docker for Mac:Docker.dmg1.2 安装Golang1.安装gobrew install go2.设置GOPATHexport GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/b...

2018-03-19 22:41:26 2872 2

转载 区块链基础架构模型

一、简单3层架构Ref:http://www.8btc.com/ebook-blockchain 二、6层架构Ref: (1)http://blog.csdn.net/qq_35624642/article/details/78138077 (2)http://blog.csdn.net/csolo/article/details/52858236 区块链技术的模型是由...

2018-03-16 00:12:34 16319 1

原创 kubectl常用命令

// view the cluster detailskubectl cluster-info// view the nodes in the clusterkubectl get nodes// create a new deploymentkubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernete...

2018-03-14 00:09:45 2048

原创 Golang GC 过程

一、GC过程Golang 1.5后,采取的是“非分代的、非移动的、并发的、三色的”标记清除垃圾回收算法。 Golang的GC过程如下所示(图片来自:https://talks.golang.org/2015/go-gc.pdf): 一共分为四个阶段: 1. 栈扫描(开始时STW) 2. 第一次标记(并发) 3. 第二次标记(STW) 4. 清除(并发)二、三色标记原...

2018-03-07 13:49:59 1386

转载 Go-简洁的并发

多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。并发模式之内核这种并发模式的内核只需要...

2018-03-07 10:01:16 418

原创 服务器间文件的快速拷贝

一、需求在两台服务器间进行文件的快速拷贝二、可选方案假设Server A ip:10.38.1.1,所需拷贝文件/home/work/test.txt 假设Server B ip:10.38.1.2 需要把文件从Server A拷贝到Server B。2.1 scp在Server B上运行:scp work@10.38.1.1:/home/work/test.txt ....

2018-03-06 17:09:45 1954 1

原创 Kubernetes架构

一、总体架构图二、分层架构三、组件之间的通信协议一、总体架构图 Kubernetes主要由以下几个核心组件组成:etcd保存了整个集群的状态;apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;scheduler负责资源的调度,...

2018-03-04 21:43:51 717

原创 Docker总体架构图

Docker总体架构图如下:Ref: http://www.infoq.com/cn/articles/docker-source-code-analysis-part1/

2018-03-04 21:16:41 2492 1

原创 gcc/g++多版本切换

一、需求gcc/g++多版本切换二、实现以gcc为例,g++类似。// (1)安装gcc多版本sudo apt-get install gcc-4.4sudo apt-get install gcc-5.4// (2)在/usr/bin下可以看到多版本ls /usr/bin/gcc-*// (3)使用update-alternatives工具安装多版本链接s...

2018-03-01 22:31:46 2564

原创 C/C++中控制动态库的符号可见性

一、需求写了一个动态库供客户使用,此库使用了一些第三方静态库,无奈客户也使用了这些第三方库,从而产生了符号冲突。 所以需要隐藏此库中第三方库的导出符号。二、可选解决方案解决方案优点缺点static 关键字简单语言级别支持static 关键字限定变量或函数只可以在定义它的文件范围内使用导出列表消除了 static 关键字上的限制不需要更多的代码可以关联版本信息具有不同粒度的符号可见性控...

2018-02-26 21:08:20 7202

原创 NewRelic移动端性能数据的钻取分析解析

目录一、背景 二、主线入口 三、主线下钻   3.1 应用崩溃率的钻取分析   3.2 应用启动次数的钻取分析   3.3 HTTP错误率/网络错误率的钻取分析   3.4 HTTP响应时间的钻取分析   3.5 频繁交互列表的钻取分析 四、其他支线   4.1 服务拓扑   4.2 应用已处理异常分析 五、探针能力一、背景数据多层钻取可以帮助我们一层一层查看更细...

2018-02-23 19:14:33 1661 1

2021隐私计算行业研究报告.pdf

2021隐私计算行业研究报告.pdf

2021-04-26

IEEE Guide for Architectural Framework and Application of Federated ML

联邦学习国际标准-OpenMPC:IEEE Guide for Architectural Framework and Application of Federated Machine Learning

2021-04-09

LeetCode 101 - A LeetCode Grinding Guide

LeetCode 101:和你一起你轻松刷题 作者:高畅 Chang Gao 版本:正式版 1.04

2021-03-20

金融分布式账本技术安全规范.pdf

《金融分布式账本技术安全规范》(JR/T 0184—2020)金融行业标准由中国人民银行正式发布。本标准由全国金融标准化技术委员会归口管理,由中国人民银行数字货币研究所立项并牵头起草,中钞区块链技术研究院等单位共同参加起草。标准经过广泛征求意见和论证后正式发布。

2020-02-25

华为云Kubernetes大规模场景下的Service性能优化实践

Kubernetes 原生的 Service 负载均衡基于 Iptables 实现,其规则链会随 Service 的数量呈线性增长,在大规模场景下对 Service 性能影响严重。本次分享介绍了华为云在 Kubernetes service 性能优化方面的探索与实践。

2018-05-24

hyperledger-fabric-doc-v1.1.0

hyperledger-fabric最新版说明文档 hyperledger-fabric最新版说明文档

2018-03-19

Dash for mac 破解版

Dash for mac 破解版,亲测可用

2016-07-08

StartUML for mac 破解版

StartUML for mac 破解版

2016-07-08

Ulysses 2.5 Mac破解版

Ulysses 2.5 Mac破解版,亲测可用

2016-07-08

jeffy-vim-v2.1

jeffy-vim用于配置Vim编辑器,使Vim工作得更像一个C/C++的IDE。在一些插件的润色下,jeffy-vim实现了很多IDE的基本功能,比如:代码解析、代码补全、函数跳转、 程序调试等。我还自己编写了一个插件用于管理项目,包括生成tags和cscope的数据库、高亮用户定义的类型和函数等功能,让工程管理起来更方便。

2015-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除