16 CodeProject-Jerry

尚未进行身份认证

Jerry.Wang

等级
TA的排名 6k+

Rust v1.39发布 - 这个编程语言真不一般!

在StackOverflow发起的"最喜爱的编程语言“年度投票中, Rust语言又一次毫无悬念地登顶了榜首。这也是Rust语言连续几年(2016-2019)来的第4次。一个自2015年才发布正式版的新星,使用人数寥寥,凭什么能够击败Python等众多语言连续四年霸版?这一切的背后,是人性的扭曲还是道德的沦丧?

2019-10-31 08:30:06

后·冯诺依曼时代,一场计算机革命悄然来临

后·冯诺依曼时代,一场计算机革命悄然来临号称能够满足区块链扩展性要求的Blockchain3.0们,没有一百也有八十。这其中除开大部分的空气项目,真正有创新有作为的候选者,在笔者看来屈指可数。它们大都通过sharding或者Layer 2的方案在传统的冯诺依曼体系架构下修修补补,不能说这样的选择有错。其实可扩展性难题来自于区块链之外,而在这些Blockchain3.0项目中,有一个却意义非凡–...

2018-08-18 09:02:19

RChain运行原理[7] - Casper共识之预言机

经过上一篇《Casper共识之安全性》的铺垫,本篇开始介绍RChain具体如何判断区块已经处于终结(finalized)状态。1 终结性下面动图演示了区块的终结过程。和BTC不同,RChain的区块具备终结性(Finality)。所谓终结,即表示区块所选择的分支不会在未来发生更改,因此终结的区块一定是从头向尾进行。一个区块只有当它所有前置区块的分支选择不再变化后,才可能有当前区块的终结性。...

2018-07-16 08:19:27

RChain运行原理[6] - Casper共识之安全性

在上一篇《Casper共识之估值函数》中介绍了验证者(validator)在打包区块时选择父级区块的逻辑,还剩下了一个问题-区块(block)在加入到DAG链后何时才能被认可? 认可即为共识,在解决“如何做”之前需要理解“为什么要这样”,所以本篇是下一篇的铺垫,解释Casper共识的原理。1 概述共识协议是在分布式环境中对某个命题在拜占庭容错度内(Byzantine Fault Tole...

2018-07-16 08:07:20

RChain运行原理[5] - Casper共识之估值函数

在上一篇《区块结构与DAG》中讲到了一个名字空间对应一条DAG链,那么它具体是如何生成的?要回答这个问题,首先需要弄清楚两个子问题:验证者(validator)在打包区块时是如何选择父级区块?区块(block)在加入到DAG链后如何被认可?这两个问题相辅相成。其中第二个问题是第一个问题的目标。 一个区块被认可也就是说这个区块内包含的状态变化进入到了终结(Finalized)状态...

2018-06-26 12:55:29

RChain运行原理[4] - 区块结构与DAG

区块结构RChain的区块结构如下图。如上图所示,RChain的一个Block由下面这些项组成:Header 头部 parents hash ordered list 指向父级区块的列表 post state hash - Body中post state的哈希new code hash - Body中new code的哈希reductions/receipt hash ...

2018-06-14 08:31:50

革命性的计算机理论实践 - RChain技术浅析

革命性的计算机理论实践 - RChain技术浅析5月20日, 作为RChain合作社成员的我,受湖南大学爱康区块链金融研究中心之遥,参加了RChain的首次meetup并发表了 《革命性的计算机理论实践 - RChain技术浅析》的演讲.演讲视频地址:https://www.bilibili.com/video/av23767359/...

2018-05-24 13:06:19

RChain运行原理[3] - 名字空间(Namespace)

名字空间在前面的两篇文章中介绍了Rholang的基本概念以及RChain的基本原理。但blockchain还有一个大问题需要解决,就是可扩展性(scalability)。可扩展性分为计算和存储两个方面:从计算的角度来说,如果同一个合约需要在所有节点上都执行一次,这不仅是一种性能的极大浪费,而且会造成全网的吞吐量存在一个无法突破的瓶颈。从存储的角度来说,如果节点需要保存所有合约的状态...

2018-05-11 10:26:08

RChain运行原理[2] - 元组空间(Tuplespace)

Rholang的消息机制在前文《初识Rholang》中提到了Rholang通信机制的两个基本操作,先复习下: 语法 含义 for( x <- channel ) P 从channel这个name中读取一条消息并删除,消息保存到x这个name中后执行P channel!(Q) 将Q这个process发送到channel这个name中Rho...

2018-05-11 10:16:34

RChain运行原理[1] - 初识Rholang

初识Rholang目前Rholang已经出到了v0.2.1,虽然距离正式版还有半年多,但语言的基本骨架已经出来了。从本文开始我会将我的学习笔记分享出来。本文的代码可以复制到http://rchain.cloud/在线执行。1、理论背景20世纪上半叶,在计算机理论方面出现了以 μ-recursive functions, Alan Turing的图灵机器和 λ-calculus 为代...

2018-04-26 10:59:07

拷贝文件到docker volume后出现的权限问题

拷贝文件到docker volume后出现的权限问题首先docker inspect找出volume的路径, 直接将文件文件拷贝进去后, 即使chown / chmod 修改了所有者和权限, 在docker内访问还是Permission Denied. 解决方法是 chcon -Rt svirt_sandbox_file_t /mnt/docker/volumes/9d9087c8a4fbb144

2017-11-23 14:09:50

群晖Synology DSM6.1 使用国内docker镜像加速

现在流行的键盘布局当年却是为了降低打字速度而发明的。类似这样的反人类发明还有很多,而由于其中某个发明的原因,从瓷国访问dockerhub服务器无比龟速。

2017-10-23 08:48:45

将CouchDB设置为只读模式

通过CouchDB的validation function可以将 CouchDB设置为只读模式validate_doc_update 设置为如下函数function(newDoc, oldDoc, userCtx) { if( (newDoc && newDoc._id == '_design/readonly-database') || (oldDoc && oldDoc.

2015-04-22 14:45:22

对docker container进行内核参数调优(tune)

对于dockercontainer的调优还是和普通的Linux调优有很大的区别

2015-04-06 22:37:19

使用Supervisord实现Docker Container的自启动

使用Supervisord实现Docker Containers的自启动实现

2015-03-30 12:25:04

利用backtrace诊断 Segment Fault 崩溃原因

利用backtrace诊断 Segment Fault 崩溃原因Linux的一个daemon进程在非常偶然的情况下导致Segment Fault崩溃,基本上要半年才会发生一次。对于这种很难重现的问题,幸好进程中有如下代码中在崩溃时导出堆栈

2015-03-27 20:26:49

重启docker服务器后 遇到 'device or resource busy'错误

如果有container在运行的时候重启 docker 服务, 可能会导致 container无法启动, 错误信息类似于Error response from daemon: Cannot start container zookeeper: Error getting container ddf1dd91bbf46dc648268327f8f7c6fffaf2f19cda5cf1d97fdc70

2015-01-26 12:48:44

Apache Kafka 分布式消息队列中间件安装与配置

wget http://apache.fayea.com/apache-mirror/kafka/0.8.1.1/kafka_2.8.0-0.8.1.1.tgzgtar xvzf kafka_2.8.0-0.8.1.1.tgzcd kafka_2.8.0-0.8.1.1bin/zookeeper-server-start.sh config/zookeeper.properties

2014-07-18 15:40:35

SVG动画 - 跳舞的女郎

<iframe frameborder="0" scrolling="no" src="http://static.gammatrix-dev.net/ff/test.html"?

2014-04-30 12:53:04

Redis实现分布式全局锁

这个问题很简单, 首先调用 INCR 并检测返回值,如果等于1就表示获得了锁然后EXPIRE设置此Key的过期时间,然后开始进行操作,当操作完成后DEL删除这个KEY伪代码如下if( INCR( 'EXCLUSION_COUNT' ) == 1 ){ EXPIRE(60) // set ttl for 1 minute // DO some work DEL(

2014-03-06 18:04:15

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。