上一篇 搭建一个私有的EOS集群 搭建了一个单节点的私链,本文将继续介绍多节点的私链搭建。
搭建一个私有的EOS集群
EOS (Enterprise Operation System)是由 Block.one公司主导开发的一种全新的基于区块链智能合约平台,由区块链奇才 BM (Daniel Larimer)领导开发。旨在为高性能分布式应用提供底层区块链平台服务。EOS 项目的目标是实现一个类似操作系统的支撑分布式应用程序的区块链架构。该架构可以提供账户,身份认证,数据库,异步通信以及可在数以万计的 CPU/GPU群集上进行程序调度和并行运算。EOS最终可以支持每秒执行数百万个交易,同时普通用户执行智能合约无需支付使用费用。
Block.one团队人才济济,包括Brendan Blummer(之前的公司交易MMORPG游戏货币)、首席科技官Daniel Larimer(区块链传奇人物之一,下面会介绍)和Brock Pierce(区块链基金会主席,Blockchain Capital联合创始人)等等。
2017年6月26日,Block.one开始销售EOS代币,计划355天共销售10亿EOS代币,EOS主网上线后会将这个以太坊基础版本的代币EOS转换为其主链上的代币。
2017年6月26-30日,销售20%也就是2亿代币,5天融资1.85亿美元,打破了当时ICO的世界纪录。70%接下来会以每小时23小时200万个发售。发售期间始于7月1号,剩下的持续350天。剩余的10%留属Block.one,不能交易和转让。每年新产生最多5%用于做DPoS的奖励。
EOS 项目刚刚发布的时候的共识机制是 DPoS(Deligated Proof of Stake,委托股权证明),类似于 Bitshares 和 Steem,这种共识机制采用随机的见证人出块顺序,出块速度为 3 秒,交易不可逆需要45秒。
EOS 最新的白皮书中已经将共识机制从 DPoS 升级为了 BFT-DPoS(Byzantine Fault Tolerance – Deligated Proof of Stake,带有拜占庭容错的委托股权证明)。交易确认时间大大缩短,从 45 秒缩短至 3 秒左右(主要为等待生产区块的时间)。这种机制可以称为初级版的 BFT-DPoS 共识机制。Daniel Larimer 称 EOS 新的 BFT-DPoS 共识机制还在开发中,会在系统上线前完成开发。
如何在Go的函数中得到调用者函数名?
有时候在Go的函数调用的过程中,我们需要知道函数被谁调用,比如打印日志信息等。例如下面的函数,我们希望在日志中打印出调用者的名字。
|
|
Java: 未来已来
在10月22的 Oracle Codeone大会上,Java平台的首席架构师 Mark Reinhold 做了The Future of Java is Today的演讲, 回顾了最近Java的几个版本的新的功能,Java的每年两次的发布周期, 澄清了关于发布流程和Java版本的几个误区,最后花了很大的篇幅介绍了未来Java几个令人非常期待的几个孵化中项目,可以为Java带来更好的生产力、性能和可扩展性。我整理了这四个项目相关的知识,你可以提前了解到Java未来的这些酷炫的特性。
Mark Reinhold 我不多介绍了, 之前要了解Java的未来动向看Java之父James Gosling, 他离开Oracle之后想了解Java的动向就看 Mark Reinhold。
Docker日志太多导致磁盘占满
我有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致今天磁盘被占满了。搜索了一下,docker官方网站上提供了一篇解决方案的文章。
Docker容器在启动/重启的时候会往/var/lib/docker
中写东西,如果你在启动docker容器遇到No space left on device
的问题,可以按照下面的步骤进行清理相关的日志操作。
1、 对/var/lib/docker/containers
下的文件夹进行排序,看看哪个容器占用了太多的磁盘空间
$ du -d1 -h /var/lib/docker/containers | sort -h
上面的命令会按照升序的方式对于容器文件夹进行排序,并列出容器文件夹的大小:
|
|
2、选择你要清理的容器进行清理
|
|
上述命令会清空对应的日志,如:
|
|
3、限制日志文件的大小
启动容器时,可以通过参数设置日志文件的大小、日志文件的格式。
|
|
Cookie是指网站为了辨别用户身份而储存于客户端的数据,由网景公司的前雇员卢·蒙特利在1993年3月发明。最初定义于RFC 2109, 以及后续的规范 RFC 2965、RFC 6265。
服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态,并且可以基于Cookie实现Session,用来在服务器端存储用户的数据。
现在,几乎所有的商业网站都会使用Cookie技术用来标示浏览的用户,比如电子商务中的购物车、广告追踪系统等,并且涉及到一系列的安全问题和隐私问题。
Go的标准库中提供了Cookie的操作,并且第三方的库提供了Session的实现,所以在使用Go开发web应用中,我们可以很方便的实现session的管理,但是也有一些安全方面的设置需要注意。
本文介绍了使用Go语言开发web应用的时候,服务器端Cookie和Session的使用。
图像相似性比较实践
2008年TinEye上线了图片搜索,开始是注册制,后来逐步放开。2011年, Google也上线了相似图片搜索,通过用户上传的图片,可以搜索相似的图片。
参考文档中提供了一些介绍图像搜索的一些文章, 尤其是阮一峰2011年和2013年两篇普及性的文章,可以帮助你了解图像相似搜索的原理。
图像相似性搜索应用广泛、除了使用搜索引擎搜索类似图片外,像淘宝可以让顾客直接拍照搜索类似的商品信息、应用在商品购物上。也可以应用物体识别比如拍图识花等领域。目前我在调研图片鉴权的方案,通过一张图片和图片库中的图片进行比对,来确定这张图片是否侵权,或者退一步讲,图片库中是否包含和这张图片类似。 这个需求和目前深度学习应用中的图像识别还不一样, 图像识别是需要将图像中的物体识别出来, 猫啊狗啊什么的,而我所要做的就是一个查找相似图片的东西。
Neal Krawetz博士看到了一些关于TinEye原理的询问, 虽然他并不知道TinEye是怎么实现的,但是根据搜索结果,他判断是基于感知哈希算法(Perceptual hash algorithm)的变种,他于2011年5月写了一篇文章,介绍相关的技术。
Go http2 和 h2c
了解一下http2和h2c (HTTP/2 over TCP,HTTP/2 without TLS)。
区块链中的共识算法
先占个坑, 慢慢整理。
本文是正在整理,当你看不到这句话的时候,意味着整理完成了。
最近101blockchains 列举了常用的区块链的公式算法,并且详细介绍了这些算法的思想、好处和坏处,当然其它文章中还介绍了一些公式算法。正如文章中所说,没有一个共识算法是完美的,采用哪种算法是一个tradeoff的过程。
本文整理了区块链的公式算法,包括算法思想介绍、好处和不好的地方。
给 iTerm 设置代理
如果你用SS FQ的话, Shadow-Socks设置的系统代理是socks5代理,在iTerm中访问一些https还是不能用, 比如用go get
下载一些依赖的库。一个办法就是使用Privoxy将socks5代理转换成http代理。
Privoxy
MacOS安装Privoxy比较简单。
|
|
你可以使用brew services start privoxy
启动privoxy服务,或者手工临时启动privoxy /usr/local/etc/privoxy/config
也可以。
如果中间需要brew link privoxy
按照提示创建文件夹,比如/usr/local/sbin
,设置对应的权限即可。
启动服务前先编辑vim /usr/local/etc/privoxy/config
|
|
8087
是本机要监听的http代理地址, 1080
是SS的socks5代理地址,还设置本地地址。
配置http代理
通过下面的环境变量就可以设置http代理。
|
|
你可以把它们写在 ~/.zshrc
或者 ~/.bash_profile
中,随时切换。
|
|
参考