-
(转载+翻译)BTC Layer2方案汇总
BTC Layer2的3种方案(转载+翻译)Note. 本篇汇总了3种BTC的2层方案介绍,分别是Odaily的《比特币生态新贵:B²土壤孕育的下个DeFi Summer》、摘选自《Merlin Bridge WhitePaper》的翻译、摘选自《BEVM WhitePaper》的部分翻译。 1. B² Network 核心架构 1.1 交易流程 1.2 系统架构 1.3 Taproot作为B² Rollup承诺 2. Merlin C...…
-
ZkSync架构及模块源码概览分析
ZkSync架构及源码初探Note. 本篇将简单介绍ZkSync开源项目整体架构、核心模块的功能及整体源码分析。希望能与大家一起探索现在比较火的Layer2开源项目,后续能够基于ZkSync开发出永续合约等应用。 1. ZkSync整体架构 2. 核心模块分析 2.1 初始化 2.2 Mempool 2.3 Block Proposer 2.4 ZkSyncStateKeeper 2.5 Committer ...…
-
6.824分布式系统课程系列(一):开篇&MapReduce介绍及框架实现
开篇&MapReduce介绍及框架实现Note. 现在分布式系统的架构设计已经成为后台开发者的必备技能,而Golang在并发方面引入了协程的方式,相对于其他语言极大地提高了并发处理能力。综合这些因素,麻省理工大学开设了用Golang实现分布式系统的课程,即6.824。在学习这门课程之前,最好对Golang有一定使用,不然在实现课程实验中会遇到较大的阻碍。而学习这门课程我们将涉及到存储、通信、计算等三方面的基础架构,目的是隐藏分布式复杂性的抽象。这些架构设计经验对于面试、工作也是非常...…
-
Java智能合约实现探索
Java智能合约实现探索Note. “智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。“[1]Java作为企业级应用开发最流行的开发语言,却比较少地能够用于在各类公链以及联盟链开发智能合约。本篇介绍一种基于Wasm虚拟机的Java智能合约的实现,重点介绍Java字节码转化为Wasm字节码过程,希望能够抛砖引玉,帮助大家继续发掘更多Java智能合约的实现方案。 ...…
-
基于数据流分析的程序漏洞分析技术方案(一)
数据流分析Note. 程序安全愈来愈受到重视,特别是在区块链领域,数据上链后无法篡改是把双刃剑,一方面是不用担心数据能够被恶意删改,但另外一方面如果当初上传的是错误的数据就无法修复。把程序缺陷扼杀在摇篮之中,是最有效也是成本最低的质量保障手段。另外像区块链领域涉及到资产的智能合约,安全性保障更应该得到保障。程序静态分析在程序缺陷分析已经发挥了巨大作用,本章将介绍静态分析领域的数据流分析技术。内容翻译自Dataflow Analysis,后面将进一步介绍开源的数据流分析工具Phasar,以及...…
-
BloomFilter(布隆过滤器)介绍
BloomFilter(布隆过滤器)介绍Note. 本篇介绍一种存储结构-布隆过滤器。这种存储结构类似于散列表,能够存储和查询元素是否存在,并且存储效率一般要比散列表高很多。应用场景有,比如爬虫应用会应用它来进行URL去重,避免重复爬取相同网页。在区块链领域方面,以太坊把Bloom Filter应用到数量庞大的交易receipt日志里,能够快速查找log。在介绍布隆过滤器之前,再介绍一种数据结构-位图。本质上,布隆过滤器是一种改进后的位图,存储效率更高。 1.有1000万个整数,...…
-
LEB128(Little-Endian Base 128)格式介绍
LEB128(Little-Endian Base 128)格式介绍Note. 本篇介绍Andorid系统在Dex文件采用LEB128变长编码格式,相对固定长度的编码格式,leb128编码存储利用率比较高,能让Dex文件尽可能的小。对于存储空间比较紧缺的移动设备,这非常有用。其中LEB128可以分为无符号(ULEB128)、有符号整数编码(SLEB128),其中还包括一种特殊的无符号整数编码(ULEB128p1 unsigned LEB128 plus 1)。下面将分别具体介绍,并给出相关...…
-
记github仓库被DMCA take down经历
记一次github仓库被DMCA take down的经历Note. 前段时间有点懒,大概有一个月没打理过博客,导致博客因为DMCA而被github官方临时关掉都没有及时发现。多亏了一位盆友提醒才知道自己博客被临时关停,不然按照这个懒惰的势头来看,没个一年半载都不会发现的 =。=今天咱们来回顾下这次蛋疼的经历,介绍一下什么是DMCA,github仓库被DMCA take down了怎么办以及如何挽回被关掉的仓库。 1. 博客变404 2. 原来是github仓库被D...…
-
fabric联盟链高并发场景下如何提高TPS
fabric高并发场景下如何提高TPSNote. 本文主要描述在高并发场景下fabric的TPS(每秒钟交易数量,这里指的是有效的交易,不包括无效交易)为什么变得很低,如何提高TPS以及不同的提高TPS方式的优缺点。提高TPS的方式根本方式是避免交易冲突,只是避免交易冲突的思路不同。避免冲突的方式可以分为2种类型,一种是使用高效的chaincode数据模型,完全避免交易发生冲突,但局限性比较大;一种是在依赖分布式锁或者MVCC等机制避免交易发生冲突,如果在chaincode执行过程中就能检...…
-
基于Redis的分布式限流方案介绍与实践
分布式限流方案介绍与实践Note. 限流算法在分布式系统设计中有广泛的应用,特别是在系统的处理能力有限的时候,通过一种有效的手段阻止限制范围外的请求继续对系统造成压力,避免系统被压垮,值得开发工程师们去思考。限流还有一种常见的作用是对用户行为进行约束,防止大量无用请求占用系统资源。比如在一个商品秒杀系统,用户的下单行为需要进行严格控制,通常都是限定某些行为在一定时间内允许的次数。这样能够避免一些黑产用户通过脚本等违规方式去抢占秒杀商品。对这些违规行为,需要执行封禁等惩罚措施。 1...…