自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 恢复 Substrate 链: unexpected epoch changes

Babe 无法正常工作是因为,在最后出块的下一个 epoch 内,没有正常出块,那么如果所有的验证者节点把系统时间调整到最后出块的时间,理论上就可以让链恢复工作了。正常情况下,区块链和外部时间是一致的,人为的让区块链回到历史时间(最后出块时间),再以加速的时间流逝赶上外部世界的时间。这种方式的原理是通过 rpc 接口(或者状态数据库)获取到最后正常区块高度下的状态数据,生成一个新的创世块,基于新的创世块运行链。:即时间扭曲的倍数,对应被压缩的是出块时间,合理设置自己的倍数;这里我们修改为两倍速运行。...

2022-08-26 16:05:30 2257 1

原创 再议 Send,Sync

问题起因想要通过 trait object 调用 Trait 中定义的 async method(s) (async fn 通过 async-trait 模拟实现)示例代码如下use async_std::task;use async_trait::async_trait;#[async_trait]trait Foo { async fn foo(&self);}struct A;#[async_trait]impl Foo for A { async

2020-09-02 18:04:43 1108 3

原创 Hyperledger Burrow StateDB

文章目录1. 存储结构1.1 Plain1.2 Tree1.3 Commit2. 代码结构Burrow 借助 Tendermint 管理 p2p 网络和区块共识,在 Tendermint 之外自己维护了一个 StateDB 存储 Burrow 中各种交易的状态数据。1. 存储结构Burrow 在 KV DB 之上通过前缀的形式划分出了多个用途的空间,主要有三大类1.1 Plain这...

2020-04-10 12:04:05 379

原创 Ethereum Service 机制

go-ethereum v1.19.121. ServiceService 抽象两类功能的集合:Protocol :p2p 节点间交互协议API :为客户端提供的 RPC 接口service 接口定义 service.go// Service is an individual protocol that can be registered into a node.//// N...

2020-03-27 12:19:12 414

原创 IPFS 命令示例

0. 准备下载 IPFS 最新 Release 版 v0.4.23,解压放入某 $PATH 下,这里放在一个零时目录下。version=v0.4.23platform="$(uname -s | tr '[:upper:]' '[:lower:]')-$(if [[ $(uname -m) == 'x86_64' ]]; then echo amd64; else echo 386; fi...

2020-03-25 22:42:59 411

原创 Hyperledger Fabric 2.0 Gossip

本文基于 Fabric v2.0.1一、Gossip 简介参见 Gossip 协议二、Gossip 在 Fabric 中的应用Fabric 使用 Gossip 作为 Peer 间的数据共享网络。在其上划分 Channel 进行消息交换,主要用于 Fabric 网络成员发现、组织内区块数据交换、私有数据的分发、及同步 Peer Channel 当前状态等。Peer 间建立连接时握手...

2020-03-22 16:28:29 481

原创 Hyperledger Fabric 2.0 Chaincode Dev

基于 Fabric v2.0.1,以前的版本应该也能通用。一、准备工作Fabric Network单节点 Peer单节点 Orderer已经创建的ChannelPeer Join 该 ChannelMac or Linux 环境可以快速基于脚本搭建 Fabric Debug 环境二、以 Dev 模式启动 Peer启动 Peer 时带上 dev mode 标识,通过命令...

2020-03-18 12:11:53 821

原创 JetBrains 系IDE debug传递JSON字符串参数问题

遇到问题版本:GoLand 2019.3调试模式启动时,传递 json 字符串遇到问题需要这样的参数chaincode query -c '{"Args":["query","a"]}'直接传递“"”会被去掉变成下面这样chaincode query -c '{Args:[query,a]}'正确方式chaincode query -c "{\"Args\":[\"query\"...

2020-03-17 19:39:06 287

原创 Hyperledger Fabric 2.0 Endorser

本文基于 Fabric v2.0.1Fabric 中所有与链相关的操作都通过 Chaincode 实现,Chaincode 管理本身也不例外。为了实现相应功能 Fabric 提供了内置的系统 Chaincode :cscc :the configuration handler for the peerqscc :the ledger query functionslscc :chainc...

2020-03-15 18:01:07 289

原创 Hyperledger Fabric 2.0 chaincode lifecycle

bin/configtxgen -profile SampleDevModeSolo -channelID sys-channel -outputBlock ./channel-artifacts/genesis.blockbin/configtxgen -profile SampleSingleMSPChannel -outputCreateChannelTx ./channel-artif...

2020-03-14 15:15:01 1724

原创 Hyperledger Fabric 2.0 external builder

Fabric 2.0 除了原有的 docker builder 之外新增了 external builder ,一个 external builder 的实现提供 detect、build、release、run 可执行命令。detect :接受两个参数source dir、metadata dir,用于探测客户端提交的 chaincode 是否可用此 builder 处理build :接受...

2020-03-12 14:46:25 1408

原创 Hyperledger Fabric 2.0 debug 环境准备

环境Fabric v2.0.1go version go1.13.7 darwin/amd64GoLand 2019.3转换为 go module到目前为止 Fabric 还没有启用 go module 管理依赖,首先将工程转换为 go module 工程。go mod init 会根据 Gopkg.toml、Gopkg.lock 生成依赖并添加到 go.mod 中,期间会访问 g...

2020-03-12 10:59:56 1298

原创 Hyperledger Fabrica 2.0 MSP & BCCSP

本文基于 fabric v2.0.1,以 peer 节点启动为例讲述 localmsp、bccsp 初始化过程。一、BCCSPBCCSP 是 Blockchain Cryptographic Service Provider 的简称,是常用区块链密码学算法的抽象表示。包含 Hash、加解密、签名、验签 等。在 Fabric 中提供两种实现方式,一种为 SW (Software) 即纯 Go...

2020-03-10 12:16:34 787

原创 Hyperledger Fabric 2.0 gRPC接口

本文基于 Fabric v2.0.1 ,与 v1.x 版不同,v2 版将 protos 定义放到一个独立仓库 fabric-protos 进行管理,并且使用 protoc 工具生成的具体语言代码也使用独立的仓库存放,如 golang 版 fabric-protos-go。一、 Orderer1. AtomicBroadcast服务定义于 orderer/ab.protoservice A...

2020-03-05 15:02:01 1629

原创 编译Filecoin

filecoin 编译过程中需要下载 proof-params 文件,默认从 IPFS官方网关(https://ipfs.io/ipfs/) 拉取,可通过环境变量IPFS_GATEWAY自定义,见 go-paramfetch期间还需要从github下载 filecoin-ffi release tarball,见 install-filecoin ,可能会被墙,通过环境变量HTTPS_PROXY...

2020-03-04 12:19:54 806

原创 IPFS WebUI

基本信息IPFS 版本:v0.4.23WebUI 版本: v2.7.2服务端设置WebUI 使用独立仓库管理,最新版直接发布到 IPFS 网络上,在IPFS实现代码中引用相应CID,如在 go-ipfs 中的webui.go所示。daemon.go// serveHTTPApi collects options, creates listener, prints status mess...

2020-03-03 12:11:47 1226

The Mythical Man Month(人月神话)20周年英文文字版

Chapter 1 The Tar Pit 3 Chapter 2 The Mythical Man-Month 13 Chapter 3 The Surgical Team 29 Chapter 4 Aristocracy, Democracy, and System Design 41 Chapter 5 The Second-System Effect 53 Chapter 6 Passing the Word 61 Chapter 7 Why Did the Tower of Babel Fail? ,. 73 Chapter 8 Calling the Shot 87 Chapter 9 Ten Pounds in a Five-Pound Sack 97 Chapter 10 The Documentary Hypothesis 107 Chapter 11 Plan to Throw One Away 115 Chapter 12 Sharp Tools ,, 127 Chapter 13 The Whole and the Parts 141 Chapter 14 Hatching a Catastrophe , 153 Chapter 15 The Other Face 163 Chapter 16 No Silver Bullet—Essence and Accident 177 Chapter 17 "No Silver Bullet"Refired 205 Chapter 18 Propositions of The Mythical Man-Month: True or False? 227 Chapter 19 The Mythical Man-Month after 20 Years - 251 Epilogue 291 Notes and References 293 Index 309

2013-09-11

Linux/Unix设计思想(扫描版)

目录: 译者序 5 序言 6 前言 10 第1章 Unix哲学:集思广益的智慧 17 1.1 “非我发明”综合症 18 1.2 Unix的开发 19 1.3 Linux: 一个人加上一百万人的智慧 20 1.4 Unix哲学的概况 21 第2章 人类的一小步 24 2.1 “小即是美” 25 2.2 让软件工程变得轻松 27 2.2.1 小程序易于理解 27 2.2.2 小程序易于维护 28 2.2.3 小程序消耗的系统资源较少 28 2.2.4 小程序容易与其它工具相结合 29 2.3 对“昆虫(bug)”的研究 30 2.4 准则2:让每一个程序做好一件事情 30 第3章 快速建立原型的乐趣和好处 33 3.1 知识与学习曲线 34 3.1.1事实是,每个人有自己的学习曲线 34 3.1.2 大师们也知道,变化不可避免 35 3.1.3 为什么软件会被称为“软件”? 36 3.2 尽快建立一个原型 37 3.2.1 原型的建立是一个学习的过程 38 3.2.2 建立早期原型能够降低风险 38 3.3 人类创造的三种系统 38 3.4 人类的“第一个系统” 39 3.4.1 在背水一战的情况下,人类创建了“第一个系统” 39 3.4.2 他没有足够的时间将事情做好 39 3.4.3 人们独自开发出“第一个系统”,或最多也只是一小群人 40 3.4.4 “第一个系统”是一个“精简、中庸的计算机器” 41 3.4.5 “第一个系统”的概念可以激发他人的创造力 41 3.5 人类的“第二个系统” 42 3.5.1 “专家”使用“第一个系统”验证过的想法来创建“第二个系统” 42 3.5.2 “第二个系统”拥有一个设计委员会 43 3.5.3 “第二个系统”是臃肿和缓慢的 43 3.5.4 “第二个系统”被誉为是一个伟大的成就 44 3.6 人类的“第三个系统” 45 3.6.1 “第三个系统”由那些为“第二个系统”所累的人们创建 45 3.6.2 “第三个系统”通常涉及到对“第二个系统”的名称变更 45 3.6.3 最初的概念依然不变,它还是很明显 46 3.6.4 “第三个系统”结合了第一和第二系统的最佳特性 46 3.6.5 “第三个系统”的设计者时间充裕,足以将任务做好 46 3.7 Linux既是“第三个系统”,又是“第二个系统” 47 3.8 建立“第三个系统” 47 第4章 可移植性的高优先级 51 4.1 准则4:舍高效率而取“可移植性” 53 4.1.1 下_的硬件将会跑得更快 53 4.1.2 不要花太多时间去优化程序 54 4.1.3最高效的方法通常不具备可移植性 55 4.1.4 可移植的软件还减少了用户培训的需求 56 4.1.5 好程序永不消失——它们会被移植到新的硬件平台 56 4.2 准则5:采用纯文本文件来存储数据 59 4.2.1文本是一种常见的可转换格式 59 4.2.2文本文件易于阅读和编辑 60 4.2.3文本文件数据简化了Unix文本工具的使用 60 4.2.4 可移植性的增强克服了速度欠佳这一缺点 61 4.2.5速度欠佳这一缺点会被明年的机器克服 62 第5章 软件的杠杆效应! 65 5.1 准则六:充分利用软件的杠杆效应 67 5.1.1 好的程序员编写好的代码;伟大的程序员借用好的代码 67 5.1.2 避免“非我发明(NIH)综合症” 68 5.1.3 允许他人使用你的代码来发挥软件杠杆效应 70 5.1.4将一切自动化 71 5.2 准则7:使用shell脚本来提高杠杆效应和可移植性 72 5.2.1 Shell脚本带给你无与伦比的杠杆效应 73 5.2.2 Shell脚本还可以充分发挥时间的杠杆效应 75 5.2.3 Shell脚本比C程序更具有可移植性 76 5.2.4 抵制采用C语言来重写shell脚本的愿望 76 第6章 交互式程序的高风险 79 6.1 准则8:避免捕获性的用户界面(CUI) 81 6.1.1 CUI假定用户是人类 83 6.1.2 CUI命令解析器的规模总是很大,并难以编写 84 6.1.3 CUI倾向于采用“大即是美”的做法 85 6.1.4 拥有CUI的程序难以与其他项目相结合 85 6.1.5 CUI没有良好的扩展性 86 6.1.6 最重要的是,CUI无法利用软件的杠杆效应 86 6.1.7 “谁在乎CUI程序?人们都不愿意打字了” 87 6.2 准则9:让每一个程序都成为过滤器 88 6.2.1 自有计算技术以来,人们编写的每一个程序都是过滤器 88 6.2.2 程序不创建数据,只有人类才会创建数据 88 6.2.3 计算机将数据从一种形式转换成另一种形式 89 6.3 Linux环境:将程序作为过滤器使用 89 第7章 更多Unix哲学:十条小准则 92 7.1 允许用户定制环境 93 7.2 尽量使操作系统的内核小而轻巧 94 7.3 使用小写字母并尽量简短 95 7.4 保护树木 96 7.5 沉默是金 97 7.6 并行思考(Think parallel) 99 7.7 各部分之和大于整体 100 7.8 寻求90%的解决方案 102 7.9 更糟糕的反而效果更好(Worse is better) 103 7.10 层次思考(Think hierarchically) 104 第8章 让 Unix 做好一件事情 106 8.1 Unix哲学:综述 110 第9章 Unix和其他操作系统的哲学 114 9.1雅达利家用电脑:人类工程的艺术 115 9.2 MS-DOS:七千多万用户的选择不会错 118 9.3 VMS系统:Unix的对立面? 120 第10章 拨开重重迷雾:Linux与Windows 的比较 123 10.1这就是内容,傻瓜! 126 10.1.1视觉内容:“用我自己的眼睛去看” 127 10.1.2有声内容:“听得到吗?” 129 10.1.3文字内容:“视频可以终结广播明星,却消灭不了小报” 130 第11章 大教堂?多么怪异! 140 第12章 Unix的勇敢新世界 149 关于作者 164

2013-09-05

代码大全2 英文版

基本内容: 代码大全(第二版)是著名IT畅销书作者 Steve McConnell十一年前的经典著作的全新演绎:第二版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论你是什么背景,阅读本书都会让你在更短的时间内、更容易地写出更好的程序。 代码大全是我早在好几年前便已经阅读过的好书。这几年来我不知买过多少书籍,也清理过许多因为书房再也放不下的书籍,但是代码大全这本书始终占据着我书架上重要的位置而不曾移开过,因为好书是经得起时光考验的。 —— Borland公司大中华首席技术官(CTO) 李维 在众多的编程类书籍中,如果只让我挑一本书来阅读,那我一定选择《代码大全》,因为它是最不可或缺的。 —— 《C++ Primer中文版(第三版)》译者 潘爱民

2013-05-21

空空如也

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

TA关注的人

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