自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 useful links

map in gochannel in goHello Gopher by Rob PikeCommunicating Sequential Goroutines by Adrian CockcroftdedisShichao’s NotesRust crash courseLearn LaTeX in 30 minutesInterview with Go’s Russ Cox ...

2019-09-06 09:21:31 244

原创 PBFT算法细节

下面的资料整理自互联网。感谢这些学习材料的产出者,他们的分享让我受益很多。特整理在此,以备后查。为什么prepare阶段在PBFT是必需的?Q1:为什么commit阶段是必需的?Q2:为什么commit阶段是必需的?Subtle Details in PBFT想要搞懂区块链就不能忽视的经典Slides on PBFTTalk by Miguel CastroFabric V0.6...

2019-09-03 12:47:26 403

原创 尤物HotStuff学习材料

以下内容来自网上,特在此做了一个大致归档,便于复习。在此感谢分享这些精彩学习材料的作者。0、Co-author’s articles on HotStuffhttps://ittaiab.github.io/2019-06-23-what-is-the-difference-between/https://blockchainschool.epfl.ch/wp-content/uploads...

2019-09-01 17:38:03 8290

原创 link

https://paperswithcode.com/https://github.com/hyperledger-labshttps://github.com/ethereum/wiki/wiki/Subtletieshttps://ethervm.io/https://b-ok.cc/https://vdfresearch.org/https://zkproof.org/http...

2019-08-26 09:34:16 228 1

原创 Go语言资料、开源项目推荐

go部分资料The Go Programming Language (侧重语言特性)Go in Action (侧重语言特性)Go in Practice (侧重实践模式)Go BlogGo官方文档go开源项目学习k-v数据库boltdb (代码量小,适合了解go语言特性后研究和学习)路由框架chi(代码量小,纯基于go标准库,适合研究Go HTTP服务)go源代码(长期学...

2019-08-25 13:05:52 275

原创 go语言中,新分配的变量如何对函数/方法调用方可见?

问题:json.Unmarshal函数什么需要传一个指向map的指针,若map是一个引用类型?为什么必须传指针,尤其是map已经是一个引用类型了? why?下面是一个示例:func main(){ m := make(map[string]string) data := `{“foo”:”bar”}` err := json.Unmarshal([]byte(data), m) if ...

2019-08-25 10:59:33 402

原创 Prof. Tony Hoare on Concurrency

下面的文字是Erlang Solutions对Tony Hoare教授的采访内容。我在看视频的时候,将这些内容记了下来。非常难得的一段史料。该采访的文字稿在Erlang Solutions Blog上有放出来,请以视频和博客上的文字为准。I’m Tony Hoare. I’m honorary member of the Cambridge University computing labora...

2019-08-12 00:17:03 282

原创 go语言小知识

1、数组越界 numbers:=[]string{"123","","456"} //cleaned := make([]string,0) cleaned:=[]string{} // empty slice fmt.Println("before:",len(cleaned)) counter:=0 for _, str := range numbers{ if st...

2019-07-24 00:38:08 290

原创 Libra的cli客户端操作笔记

1. 回顾我们复习一下,构建libra客户端的三步。2.1 克隆代码$ git clone https://github.com/libra/libra.git && cd libra2.2 安装依赖$ ./scripts/dev_setup.sh2.3 构建Libra 客户端并连到测试网$ ./scripts/cli/start_cli_testnet.sh2. ...

2019-06-19 23:29:35 996 1

原创 Facebook开源的Libra项目:调试入门

本文目录1. 代码准备和编译1.1 克隆代码1.2 安装依赖1.3 build&run2. Libra能力介绍3. vscode中调试libra3.1 配置launch.json文件3.2 调试细项4. 总结参考资料本文我会介绍一下在微软的vscode中调试libra项目的情况。libra是Facebook主导的稳定币的开源实现,rust编程语言实现。1. 代码准备和编译1.1...

2019-06-19 21:59:38 2474

原创 Remix调试solidity之疑问

问题描述:为什么将0x80存在内存位置0x50?指令序列:0000 PUSH1 800002 PUSH1 400004 MSTORE0005 CALLVALUE栈Stack:0: 0x0000000000000000000000000000000000000000000000000000000000000000内存Memory:0x0: 0000000000000000000...

2019-02-16 15:09:41 717 1

原创 以太坊小知识(六)——refund gas计算

准备知识以太坊黄皮书拜占庭版本中编号为65的公式刻画了单个交易执行结束后,总的可返还的gas的计算方法。refund gas就是要计算等式右边第二个项,即min( , )。其中Ar的含义如下【在黄皮书6.1节】:下面的代码是geth(core/state_transition.go)中对编号为65的公式的实现:func (st *StateTransition) refundGas(...

2019-01-21 22:40:04 981

翻译 君士坦丁堡可造成新的重入攻击

即将到来的以太坊网络Constantinople升级为SSTORE操作引入了更便宜的gas成本。作为一种不必要的副作用,当在Solidity智能合约中使用address.transfer(…)或address.send(…)时,这可能引发重入攻击。以前,这些函数被认为是重入安全的,现在它们不再安全。这段代码出了什么问题?以下是一个简短的智能合约,在Constantinople之前不易受到重入攻...

2019-01-16 21:48:01 359

原创 以太坊小知识(五)——difficulty、totalDifficulty、cumulativeGasUsed、gasUsed

difficulty & totalDifficultyeth.getBlock(22)输出:{ difficulty: 17247064057, extraData: "0x476574682f6b6c6f737572652f76312e302e302d66633739643332642f6c696e ...

2019-01-11 00:11:39 2157

翻译 Self和self的区别

“所有的trait都定义了一个隐式的类型Self,它指当前实现此接口的类型。” ——Rust官方文档self当self用作函数的第一个参数时,它等价于self: Self。&self参数等价于self: &Self。&mut self参数等价于self: &mut Self。Self方法参数中的Self是一种语法糖,是方法的接收类

2018-12-04 23:32:54 3134

原创 《隐私技术:下一个十年的重器》

(谨以此文纪念比特币白皮书发表十周年)最近这两天,纪念比特币白皮书发布十周年的咨询,文章,聚会淹没朋友圈,公众号和微信群。本来也打算写点什么的,可不知道提笔写啥。想写点第一个十年的大事记,但发现社区这方面的文章已经有写,而且质量很高[1]。恰逢以太坊在布拉格召开devcon4,大会第一天(即10月31日),以太坊创始人Vitalik发布了题为“ETH2.0:The Road to scalin...

2018-11-02 02:05:00 189

原创 tZERO

t0合约上链时间轴2018年9月28日 11:11:04 PM +UTC,tzero合约完成创建。当然还创建了Storage合约和Compliance合约,但这两个合约源代码没有开源。合约调用交易:https://etherscan.io/tx/0x595b5b8ca4047ae1ac31f0e24ddad2cd0bad1d47f267db114e0e899df7373d15。Tzero合...

2018-10-21 19:05:11 604

原创 以太坊Ethereum 2.0研发资料

以太坊2.0主要由Casper+Sharding(即Shasper)、以太坊下一代虚拟机EWASM等旨在改进以太坊1.0的基础层的项目。Shasper项目Must readSharding FAQs以太坊Ethereum2.0规范Shasper路线图Shasper技术路线图分为7个阶段。预计完整实施得到2020年了。Shasper工程实现目前有多个团队在对以太坊2.0规范进行工...

2018-10-08 22:21:04 669

翻译 SBFT算法

SBFT: a Scalable decentralized trust infrastructure for blockchains摘要:我们提出了SBFT,一个面向区块链的可扩展的去中心化信任基础设施。它实现了一种新的拜占庭故障容错算法,解决了两大挑战:可扩展性和去中心化引言两种趋势:一是恶意攻击日益猖獗;二是越来越多的重要基础设施,信息和业务正在被数字化并搬到线上。解决方案:使用可扩...

2018-10-01 13:40:13 4572

原创 《汇编语言》笔记——第一章 基础知识

机器语言机器语言是机器指令的集合。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。每一种微处理器都有自己的机器指令集,也就是机器语言。汇编语言汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。例如:mov ax,bxQ:如何让计算机执行程序员用汇编指令编写的程序呢?...

2018-09-22 21:16:11 538

原创 区块链:安全和隐私

区块链course课程1,ETH Zürich, spring 2018 课程2, Illinois,fall 2016 课程3, Standford,亮点是4个project智能合约安全EVM资料 todo系统安全todo网络安全todo共识Rethinking Large-Scale Consensus 术语false positive ...

2018-08-16 23:28:48 775

原创 Raft算法

Raft算法官网 Raft演示动画:todo 使用Raft的区块链项目:quorum、cita

2018-08-12 21:32:17 411 1

原创 PBFT算法演示

安装go and git【omit】拉取代码git clone https://github.com/bigpicturelabs/consensusPBFT/pbft构建cd $GOPATH/src/github.com/bigpicturelabs/consensusPBFT/pbft go build main.go运行节点1(主节点):./main ...

2018-08-10 22:51:19 2648 4

原创 区块链共识:超越经典共识科学

经典共识的基本假设封闭的环境(closed,permissioned)参与者身份【指public key?】和数量是共同知识(common knowledge)认证信道PKI区块链共识的基本假设任何人可以任意加入(或离开),执行协议(或不执行协议)无认证机制,参与者是(准)匿名的(open,permissionless,易遭受女巫攻击)参与者数量是动态的开放环境下...

2018-08-08 23:10:50 231

原创 十问PBFT算法

(1) 什么是PBFT算法?PBFT是BFT类中首个实用的算法,该算法是基于消息传递的一致性算法,在弱同步网络下,算法经过三阶段可以达成一致性,算法复杂度为O(N^2),在无法达成一致性时,重复执行这些阶段,直至超时。PBFT是很多区块链项目【Tendermint,hashgraph等】共识算法的基础。(2)大家脱口而出的公式N=3f+1是怎么得来的?记系统中拜占庭节点数为f,记N为系...

2018-08-08 22:52:56 2905 2

原创 go:Q&A

Q:使用channel发生死锁报错信息fatal error: all goroutines are asleep - deadlock!main0.gopackage mainimport "fmt"func main() { ch := make(chan int) for i:=0;i<4;i++{ ch<-i ...

2018-08-05 14:18:20 193

原创 以太坊小知识(四)—— Q&A

1、以太坊tps的理论计算方式The block gas limit is 7,999,992 Transaction costs 21,000 gas (let’s assume nothing else is attached) That’s ~380 transactions per block With a block time of around 15....

2018-08-01 00:03:24 720

原创 《RustPrimer》学习笔记(一)

《RustPrimer》在线阅读链接:https://rustcc.gitbooks.io/rustprimer/content/初识RustRust是一门系统级编程语言,被设计为保证内存和线程安全,并防止段错误。它的基本理念是“零开销抽象”。理论上来说,它的速度与C/C++同级。Rust使用实现(implementation)、特征(trait)和结构化类型(structured t...

2018-07-28 18:04:47 1604

原创 《GoEthereum Walkthrough》学习笔记(一)

不要试图使用Windows作者在这里建议我们不要用Windows来构建或调试go-ethereum。【注】事实上,在Windows上构建或调试go-ethereum也是可以的。安装geth下载go-ethereum源码,获取所有的依赖,并构建geth。这一步比较常规。这里就不展开。创建新的私有以太坊网络这一步也比较常规。这里就不展开。启动新的以太坊网络您可以...

2018-07-25 01:09:33 550

原创 crypto lib

格密码https://git.njit.edu/palisade/PALISADE同态密码https://git.njit.edu/palisade/PALISADE…

2018-07-22 14:11:44 1442

原创 Debug以太坊go-ethereum实战

软硬件环境OS:macOS amd64geth version:go-ethereum v1.6.7IDE:golandgo version:go1.10.1 darwin/amd64搭建go-ethereum本地化开发环境搭建过程这里不细讲,具体可以参考Windows下搭建btcd本地化开发环境。只不过本文使用goland作为IDE。安装geth$ go instal...

2018-07-18 19:08:29 2653 2

原创 to read lists

Unix环境高级编程,第三版(APUE)设计模式程序员的自我修养:链接、装载与库汇编语言,第3版,清华大学出版社Unix编程艺术Linux系统编程Linux/Unix系统编程手册深入解析Windows操作系统TCP/IP高效编程:改善网络程序的44个技巧Unix网络编程 卷1:套接字联网API恰如其分的软件架构深入理解计算机系统...

2018-07-16 15:55:44 208

翻译 如何扩展以太坊:分片原理解释

【博主注】Raul Jordan(以太坊2.0开发者)在7月10号将以太坊2.0最新研究变化反映在了原文中,原文发表于今年1月,具体的变化主要包括信标链,验证者注册合约(弃用验证者管理合约),跨链路,以及成为一名验证者的门槛(抵押30ETH),相关学习资源链接等。【声明】最初的中译本发于以太坊爱好者,但是不能反映有关分片技术最新的变化。但除了涉及分片技术的部分有较大改动外,其他部分均保持不变。...

2018-07-16 14:18:34 981

翻译 详尽的Casper v2

这是描述Casper + Sharding链第2版规范的工作进度文档。与早期版本严重依赖现有的以太坊PoW链作为中心链相比,本版本规范将基于RANDAO 信标,证明和Casper FFG机制的权益证明链作为基础,与PoW主链相对简单,包括块引用和单向存款。结构的宽泛描述有一条中心PoS链存储和管理当前活跃的PoS验证者集合。最初成为一名验证者唯一可用的机制是在现有的PoW主链上发送一条包含...

2018-07-15 17:50:29 466

原创 notes on Scaling Ethereum with Raul Jordan and Preston Van Loon

播客很长,讲的干货很多,这里只梳理的部分干货。笔记1、不同的扩容解决方案,在去中心化,可扩展性和安全之间都有权衡。2、比特币扩容主要解决方案是闪电网络。3、已有的区块链面临一种局面,那就是如果你想创建一个去中心化的账本,那需要网络中的每一个node确认和验证交易,最终是获得了安全性但很慢。4、有两种不同的扩容方法。L1 (Layer 1)方案是修改区块链核心协议,需要硬分叉...

2018-07-15 14:36:58 367

转载 Go语言:堆栈跟踪

link:https://www.ardanlabs.com/blog/2015/01/stack-traces-in-go.html

2018-07-12 16:45:28 934

原创 以太坊小知识(三)——区块奖励机制浅析

以太坊的区块奖励机制以太坊,区块奖励有三部分,它们是区块奖励(类似比特币中的50BTC),交易费(这一部分比特币中也有)和叔伯块奖励(这一部分比特币中没有)。以太坊的区块奖励以太坊中,每个区块奖励是5ether。blockReward *big.Int = big.NewInt(5e+18) // Block reward in wei for successfully minin...

2018-07-09 16:53:03 4970

原创 以太坊小知识(二)——区块生成机制

Question:以太坊go-ethereum中,当一个miner找到一个新区块时,会将结果Result发送到管道returnCh中。那接下来的逻辑是怎样的呢?//miner/agent.gofunc (self *CpuAgent) mine(work *Work, stop <-chan struct{}) { if result, err := self.

2018-07-07 00:50:05 3450

原创 Emin Gün Sirer:共识协议≠Po*

Emin Gün Sirer:唉,现在关于共识协议的分析框架存在着无可救药的错误。人们认为工作量证明(PoW)和权益证明(PoS)是共识协议,也是仅有的两种共识协议。错得离谱。让我来解释一下。结论1:Po*(PoW,PoS,…)是抗女巫攻击机制,单凭Po*无法完成共识。工作量证明和权益证明实际上是抗女巫攻击机制(Sybil Control Mechanism)。权益证明无法仅凭自身...

2018-06-30 21:02:03 400

原创 链圈技术大佬代表作汇总

关于区块链,你得知道这些大佬及其代表作。Satoshi NakamotoBitcoin,UTXOSunny King2012年8月19日,发表peercoin白皮书,第一个PoS实践者Dan Larimer关于BM,你得知道这些。 1、BM(Dan Larimer)畅谈EOS, Ethereum, DPos,Cardano,Steemit, Crypto Bu...

2018-04-30 21:46:58 315

空空如也

空空如也

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

TA关注的人

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