2020-07-14

Web3极客日报#208

1. Caliper区块链性能测试工具 https://github.com/hyperledger/caliper-benchmarks @Frozen:最近由于需要基于Fabric开发区块链应用,在学习过程中发现HyperLedger下的Caliper这个工具用来做性能测试还不错,不仅仅可以用来做Fabric测试,还能用来给Ethereum等其他链进行性能测试。 2. Golang使用内存虚拟文件系统提升IO https://www.jianshu.com/p/102b33f56cc7 @Frozen:做性能测试的过程中经常会遇到IO成为瓶颈。Gox语言中,1.06a版本以上,可以利用内置的github.com/topxeq/afero包来将内存中虚拟出一个文件系统。这样,如果内存足够大,完全可以利用它来提升一些文件IO处理的效率。 3. Gocker:想深入Docker,那就自己动手写一个 https://github.com/shuveb/containers-the-hard-way @Frozen:容器已成为应用程序在服务器上打包和运行的默认方式,但是Docker到底怎么做到的,这个项目选择了一条艰难的路,自己实现一套容器,让人深入理解容器技术。

Read More
2020-07-13

Web3极客日报 #207

1. [架构师选型之路]——文件转换开源库 https://mp.weixin.qq.com/s/5_MUHyeR-0VZD9yUJ7_aqQ @蔷薇:平常我们接触的文件格式除了浏览器可以很轻松解决的如图片、音视频等。还有如 word、pdf、excel、markdown、psd、zip 等格式的文件,需要借助库来实现转换才能被浏览器正常的读取及下载。   2. 绕过VSCode私货的其他选择 https://opensource.com/article/20/6/open-source-alternatives-vs-code @Frozen:微软以开源的方式发布了 VS Code,但是你从微软下载的版本其实并不是开源的。然而,你仍有办法以开源的方式使用 VS Code,或者直接选择其它的开源替代品。  ...

Read More
2020-07-12

Web3极客日报 #206

1. An evaluation context for Rust https://github.com/google/evcxr @周洋:项目是给rust语言写了一个jupter notebook的内核,可以在jupter上记rust笔记了。这里有个 sample:https://github.com/google/evcxr/blob/master/evcxr_jupyter/samples/evcxr_jupyter_tour.ipynb   2. 给 JavaScript 开发者看的 Rust...

Read More
2020-07-11

Web3极客日报 #205

1.  Yield Farming Games https://bankless.substack.com/p/yield-farming-games @NakaDaoLe:  来看看最近很火的Yield Farming 是怎么玩的。   2.【LeetCode/算法】油管上最好的Java 版本 LeetCode逐题详解  https://www.bilibili.com/video/BV1a4411e7oh?from=search&seid=10842968333180922920 @River:  LeetCode算法视频教程,让刷题不再苦恼。...

Read More
2020-07-10

Web3极客日报 #204

1. 最新的Redis核心数据结构介绍 https://www.diguage.com/post/redis-core-data-structure-1/ @shooter:Redis 目前是使用最广泛的缓存中间件,其突出特点就是支持多种常见的数据类型。 Redis 实现了linkedlist、ziplist、quicklist等数据结构实现数据的快速、高效的访问。如果用rust实现这些数据结构,你会怎么做呢?   2. Emin教授的雪崩协议 http://www.tucaod.com/5517.html?from=singlemessage @dream:雪崩协议Ava和同类型协议通过网路的重复采样操作建立亚稳态共识,在事件被创建并发送到验证者节点后,每个节点会随机选择一批固定数量相邻的节点询问,如果多数节点对事件叙述相同,那么即判断为真,如果大多数节点给出不同答案,则切换事件内容,重复采样将会多次进行直到达到收敛。 雪崩协议将共识问题与管理问题分开。每个都是模块化和独立化地处理。通过gossip协议与循环采样的智能组合形成共识。同时,通过抽样和投注股份实现公平治理,从而实现用户与其决策之间的直接联系。   3. 有锁并发、无锁并发和crossbeam简介...

Read More
2020-07-09

Web3极客日报 #203

1. League of Entropy 熵值联盟 https://www.cloudflare.com/leagueofentropy/ @陈锡亮:对很多行业来说,一个安全的随机数是非常必要的。但如何生成一个足够安全的随机数并没有那么容易。在某些情况,比如彩票,如何证明生成的随机数是真正随机的也不容易。于是熵值联盟成立了,目前有LavaRand, URand, Seismic Girl, ChaChaRand 和 InterplantaryRand 一共五位英雄,各自通过自己的超能力生成安全公平的随机数。任何服务都可以利用 drand 这个工具来得到公开或者私密的随机数,妈妈再也不用怕我生成的随机数不够安全了。...

Read More
2020-07-07

Web3极客日报#201

1. “技术中立”消亡史 https://mp.weixin.qq.com/s/hi6VKrFwUVzIc77uQjPTyQ @加一:TD-SCDMA事件、“快播案”、贺建奎事件……伴随着中文互联网的成长,技术中立论在中国从勃兴到夭亡,只用了短短十几年;而在欧美,“BLM”运动也将反对“技术中立”的时代巨浪引向了社交媒体平台甚至AI领域。 这一切是如何发生的?“技术中立”观念的消亡对人类科技的未来又究竟意味着什么?   2.性能之殇:从冯·诺依曼瓶颈谈起 https://zhuanlan.zhihu.com/p/52721155 @张晓:推荐一篇从体系架构的视角看系统能力提升的小综述。   3.Solidity 十大常见安全问题 https://www.chainnews.com/articles/769693254501.htm @加一:在 2018 年,我们(CheckMarx)曾对智能合约安全状况进行过初步研究,重点是...

Read More
2020-07-06

Web3极客日报#200

1. ZenUML助力程序开发 https://zenuml.com/ @周洋:已经有了PlantUML(或者别的什么工具了),你为什么还要做ZenUML呢?其实很简单,就是那些工具没有解决我要解决的问题。PlantUML也是从文本转图形,ZenUML也是从文本转图形。 但是两者的根本区别是,前者描述的是图形,ZenUML描述的是模型。比如下面的PlantUML和ZenUML画出的图是一样的。你单独看代码的话,PlantUML基本上不具有可读性,而ZenUML很容易明白其中的逻辑。 使用ZenUML的过程是建模的过程,图形只是中间产物,其它的工具实际上就是画图,画完了你还得重新构思如何设计程序  by 肖鹏。 2. 十大合约安全问题之2020 http://blog.hubwiz.com/2020/07/02/solidity-top-10-security-issues/ @Frozen:CheckMarx安全研究小组通过扫描公开的以太坊智能合约所发现的Solidity智能合约开发中常见的十大安全问题,其中未检查的外部调用和高成本循环分列排行榜前两名。 3. EVM操作码cheatsheet https://ethervm.io @Frozen:提供EVM操作码的速查简表和详表,方便以太坊智能合约开发人员、安全研究人员在开发、优化或分析以太坊智能合约的漏洞时作为指令手册使用。

Read More
2020-07-05

Web3极客日报 #199

1. 给开发者的密码学教程 https://cryptobook.nakov.com/ @Harry:这本免费的在线书籍是专门写给开发者的,包含了密码学知识以及相应的代码例子(Python)。内容包括哈希算法,MAC,秘钥衍生函数,公钥密码学,椭圆曲线加密算法,数字签名等,其中还讲解了以太坊的相关内容。书还没写完,喜欢追新的同学可以去学习学习了。   2. Pass: 遵循 Unix 哲学的密码管理器 https://www.passwordstore.org/ @Harry:Pass 是一个遵循 Unix 哲学开发而成的密码管理工具。使用 pass,你可以添加、移除、生成、检索、以及同步密码。密码通过...

Read More
2020-07-04

Web3极客日报 #198

1.以太坊POW挖矿报告 https://consensys.net/insights/pow-mining-report/ @NakaDaoLe:  此报告提供了以太坊自2015年启动以来POW工作量证明挖矿的见解,分析与指出了链上链下事件对于矿工与网络的影响,以及以太坊矿工们的生态系统状况。由consensys出品。   2. 开源、易扩展、方便集成的在线绘图工具 https://zhuanlan.zhihu.com/p/82136707 @River:  le5le-topology是一个开源、易扩展、方便集成的在线绘图(微服务架构图、网络拓扑图、流程图、活动图、时序图、类图等)工具。   3. What is Blockchain Technology?  https://blockgeeks.com/guides/what-is-blockchain-technology/ @River:...

Read More
2020-07-03

Web3极客日报 #197

1. Rust 程序中的内存和线程安全实践 https://cseweb.ucsd.edu/~yiying/RustStudy-PLDI20.pdf @洋芋:这是 ACM PLDI 2020 的一篇研究论文,对一些使用 Rust 语言开发的项目,统计分析了其中内存和线程安全的问题,论文中的一些数据和观点值得 Rust 语言开发者参考和学习。   2. 好用的Markdown工具...

Read More
2020-07-02

Web3极客日报 #196

1. 终端仿真器——Alacritty https://github.com/alacritty/alacritty @Shooter:Alacritty是一个免费的开源,快速,跨平台的终端仿真器,它使用GPU进行渲染,可以做到其他启动器无法实现的性能优化,还是Rust写的。   2. KeePass:开源的跨平台密码管理器 https://github.com/keeweb/keeweb @Harry:KeePass 是一个开源的跨平台密码管理器,与商业密码管理软件1Password和LastPass不同的是,KeePass可以让你完全掌握你的密码数据库。如果需要多端同步的话,需要自己配置。基于 KeePass 还开发出了了一些易用的密码管理器,比如 KeePassX,keeweb,MacPass 等,也都是开源的,有兴趣的同学可以去搜索试用。   3....

Read More
2020-07-01

Web3极客日报 #195

1. 59款中国应用的信息 https://appmagic.rocks @Forzen:最近59款中国应用在印度市场被禁,且今天已经全部下架。那这59款应用都是什么来头,市场表现如何?可以用这个移动市场分析工具逐一看看。   2.推荐一个随笔集 https://prog21.dadgum.com/ @肖雪洁:虽然已经停更,但是这里仍然有着大量对程序开发工作非常有启发性的文章。其中一篇讲到现代的 minimalism,并不是曾经 Forth 那种极简主义,而是选取尽量高层次的语言,尽可能的使用语言提供的功能,在最少的代码量里实现自己的需求;另一篇文章谈到,体现一个软件工程师的 taste 的部分,通常不是他用的最多的语言,而要看他的第二语言是什么。总之这个随笔集里所有的文章都非常推荐精读,包含一整个系列讲述如何用 functional programming language...

Read More
2020-06-30

Web3极客日报 #194

1. 为你的树莓派定制一款日常使用的操作系统 https://opensource.com/article/20/6/custom-raspberry-pi @Frozen:揽活儿要靠金刚钻,程序员行走天涯也需要随身武器,如何打造一片便携且使用方便的树莓派尽在这篇文章。   2. AlphaWallet 团队的 TokenScript 设计方案 https://github.com/AlphaWallet/TokenScript/blob/master/doc/design_paper.md @张晓-冰链科技:将实体与服务进行 Tokenization 的过程中会遇到哪些问题?团队做了深入的思考并提出了设计方案。不管是基于何种区块链进行 Token 设计,都会很有启发。...

Read More
2020-06-29

Web3极客日报#193

1. Redshirt – 基于WASM和IPFS的去中心化操作系统 https://github.com/tomaka/redshirt @kun:Redshirt是一个试验性的操作系统,其之上运行的所有可执行文件全部是Wasm的形态,并从IPFS网络中加载。 2. 如何提前计算以太坊合约部署地址 http://blog.hubwiz.com/2020/06/29/contract-address-before-deploy/ @Frozen:REATE2是以太坊在2019年2月的康斯坦丁包硬分叉中引入的一个新操作码。利用CREATE2操作码可以在部署智能合约前就 预先计算出合约的部署地址。 3. 可能是世界上最简单的用 Go 来写 WebAssembly...

Read More