- 博客(146)
- 资源 (25)
- 问答 (1)
- 收藏
- 关注
转载 区块链共识算法之BFT(4)
(1)PBFT 最常用的BFT共识机制是实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)。该算法是Miguel Castro和Barbara Liskov在1999年提出 来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由节点数的指 数级降低到节点数的平方级,使得拜占庭容错算法在实际系统应用中变得可行。 PBFT是针对状态...
2018-06-09 19:18:13
10994
转载 区块链共识算法之POS(2)
POS(Proof of Stake)共识机制,是一种由系统权益代替算力决定区块记 账权的共识机制,拥有的权益越大则成为下一个区块生产者的概率也越大。POS 的合理假设是权益的所有者更乐于维护系统的一致性和安全性。如果说 POW 把 系统的安全性交给了数学和算力,那么 POS 共识机制把系统的安全性交给了人 性。人性问题,可以用博弈论来研究,POS 共识机制的关键在于构建适当的博弈 模型相...
2018-06-09 19:02:46
2336
转载 区块链共识算法之POW(1)
共识机制是区块链的核心基石,是区块链系统安全性的重要保障。区块链是 一个去中心化的系统,共识机制通过数学的方式,让分散在全球各地成千上万的节点就区块的创建达成一致的意见。共识机制中还包含了促使区块链系统有效运 转的激励机制,是区块链建立信任的基础。 区块链公链常用的共识机制有 POW、POS、DPOS、BFT 以及多种机制混合而成的共识机制等。共识是指系统节点达成一致的过程,而分布式系统...
2018-06-09 18:51:36
4098
1
转载 锤子手机发布会提到的 OpenResty 是什么?
在Smartisan T2 发布会上,锤子科技宣布把发布会的门票收入捐助给 OpenResty 软件基金会,用来推动该开源项目的发展,听到这个消息非常的开心。首先要感谢锤子科技给予国内开源项目的大力支持,这次捐助,不仅是 OpenResty 的一件大事,也是国内开源社区的发展的一个重要里程碑。 关于 OpenResty,最初我们的想法很简单,希望通过《OpenResty最佳实践》开源...
2018-06-09 13:45:27
974
转载 iptables中DNAT、SNAT和MASQUERADE的理解
DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢。这是我们在设置Linux网关或者防火墙时经常要用来的两种方式。以前对这两个都解释得不太清楚,现在我在这里解释一下。首先,我们要了解一下IP包的结构
2017-03-30 18:05:17
2330
原创 redis之 zadd、zremrangebyscore、zremrangebyrank、zscore、zcard、zcount、zrangebyscore、zinczrevrankzrevrange
1.zadd向名称为key 的 zset 中添加元素 member,score 用于排序。如果该元素已经存在,则根据score 更新该元素的顺序redis 127.0.0.1:6379> zadd myzset 1 "one"(integer) 1redis 127.0.0.1:6379> zadd myzset 2 "two"(intege
2016-08-15 23:20:08
3609
原创 redis之sadd、srem、spop、sdiff、sdiffstore、sinter、 sinterstore、sunion、sunionstore、smove、scard、sismember
1.sadd向名称为key 的 set 中添加元素redis 127.0.0.1:6379>sadd myset "hello"(integer) 1redis 127.0.0.1:6379> sadd myset "world"(integer) 1redis 127.0.0.1:6379> sadd myset "world"(integer)
2016-08-14 18:22:43
5216
原创 redis之ltrim、lpop、rpop、rpoplpush、lindex、llen
1.ltrim保留指定 key 的值范围内的数据redis 127.0.0.1:6379> rpush mylist8 "one"(integer) 1redis 127.0.0.1:6379> rpush mylist8 "two"(integer) 2redis 127.0.0.1:6379> rpush mylist8 "three"(integer) 3
2016-08-13 23:50:35
13550
1
原创 redis之lpush、rpush、lset、lrem
1.lpush在key 对应 list的头部添加字符串元素2.rpush在key 对应 list 的尾部添加字符串元素3.linsert在key 对应 list 的特定位置之前或之后添加字符串元素redis 127.0.0.1:6379> rpush mylist3 "hello"(integer) 1
2016-08-09 23:25:40
29531
1
原创 redis之incrby、decrby、strlen、hsetnx、hgetall、hmset、hmget、hincrby、hlen、hdel、hkeys、hvals、hgetall
1.incrby同 incr类似,加指定值 , key 不存在时候会设置key,并认为原来的value 是 02.decr同decr,减指定值。decrby完全是为了可读性,我们完全可以通过 incrby 一个负值来实现同样效果,反之一样。3.append给指定key 的字符串值追加 value,返回新字符串值的长
2016-08-08 23:41:23
3039
原创 codeigniter的session(1)
Session(会话)类可以让你保持一个用户的 "状态" ,并跟踪他在浏览你的网站时的活动。CodeIgniter 自带了几个存储 session 的驱动:文件(默认的,基于文件系统)数据库RedisMemcached另外,你也可以基于其他的存储机制来创建你自己的自定义 session 存储驱动, 使用自定义的驱动,同样也可以使用 Session 类提供
2016-08-04 22:07:54
443
原创 redis之setnx、setex、setrange、mset
1.setnx设置 key对应的值为 string类型的 value。 如果key 已经存在,返回 0,nx 是not exist 的意思。例如我们添加一个name= HongWan_new 的键值对,可以这样做:redis 127.0.0.1:6379> get name"HongWan"redis 127.0.0.1:6379
2016-08-02 22:59:37
19029
原创 redis的持久化
redis可以支持持久化,可以将内存中的数据写到磁盘。主要有两种方式:1.快照(Snapshotting);2.Append-only file(oaf) 1.快照方式 : 快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在 n
2016-08-01 22:38:26
418
原创 使用内存 or 不使用内存?
发现一种情况,开发在沟通后端资源设计的时候,常常因为习惯使用和错误了解产品定位等原因,而忽视了对真实使用用户的评估。也许这是一份历史数据,只有最近一天的数据才有人进行访问,而把历史数据的容量和最近一天请求量都抛给内存类的存储现实是非常不合理的。 所以当你在究竟使用什么样的数据结构存储的时候,请务必先进行成本衡量,有多少数据是需要存储在内存中的?有多少数据是
2016-06-30 13:46:24
419
转载 Python:日志模块logging的应用
通常,在商用软件中均会有完整的日志机制,之前使用C语言实现过一个《简单的分级别写日志程序》,具有以下功能和不足:在Python中,上面以实现的和已经实现的,均可以使用logging模块迅速搞定,且仅仅只需要一个配置文件,两行代码,实现过程如下(仅以输出的磁盘文件为例,命令输出只需要修改配置文件即可,具体可查API手册):1. 定义配置文件logging.conf:[logg
2015-11-05 10:27:42
404
转载 简单分级别写日志程序
/************************************************************************/ /* * 文件名称:write_log.cpp * 摘 要:此文件实现了普通WINDOWS程序中的日志功能 * 主要有以下特点: * 1. 根据日期创建日志文件目录,每
2015-11-05 10:16:29
454
原创 rsync源码编译安装
1.http://rsync.samba.org/ 找到合适版本进行下载2.解压,进入rsync目录3../configure --prefix=/usr/local/rsync4.make && make install5.ln -s /usr/local/rsync/bin/rsync /usr/local/bin/rsync6.配置server:(1)vi /usr/
2015-10-27 22:02:08
4216
原创 玩转bugzila
首先我们要下载最新版的Bugzilla包,这里我下载的是4.5.2版本。使用wget工具在shell或终端上下载:wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.5.2.tar.gz你也可以从官方网站进行下载。http://www.bugzilla.org/download/从下载下来的
2015-09-13 22:01:14
2323
原创 linux下qt环境搭建
1.yum install qt qt-devel qt-x11 qt-doc qt-demos qt-examples qt-assistant qt-creator qt-config2. yum install phonon-devel.x86_64 -y3. touch hello.cpp4.qmake-qt4 -project -o hello.pr
2015-09-07 17:27:05
477
原创 linuc之waitpid
waitpid系统调用在Linux函数库中的原型是:#include /* 提供类型pid_t的定义 */#include pid_t waitpid(pid_t pid,int *status,int options) 从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供
2015-08-18 23:43:53
620
原创 linux之wait函数
#include#includepid_t wait(int *status);进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。参数status用来保存被收集
2015-08-18 23:28:08
479
原创 git使用
服务端建立仓库:1.git init --bare project1.git客户端:1.git clone root@ip:/git仓库路径2.git conf ig user.name "user1" git config user.email "user1@163.com"3.echo "create file" > file4.git add file
2015-08-16 22:32:08
317
原创 安装编译源码php5.6.11
安装php是建立在安装apache和mysql之上的,可以参考我安装mysql和apache源码安装的博客。cd php-5.6.11./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file
2015-08-16 12:33:25
686
原创 kvm(1)之快速使用
在fedora14下:1.yum install kvm qemu virt-manager2.dd if=/dev/zero of=fc14.img bs=1M count=81923.qemu-system-x86_64 -m 2048 -smp 4 -boot order=cd -hda ./fc14.img -cdrom /root/Fedora-14-x86_64
2015-08-12 15:39:46
373
原创 让自己的linux系统成为网桥
1.echo "1" > /proc/sys/net/ipv4/ip_forward2.ifconfig eth0 0.0.0.0 up3.ifconfig eth0 0.0.0.0 up4.brctl addbr br0 //添加一个网桥5.brctl addif br0 eth0 brctl addif br0 eth0 //将eth0
2015-08-10 21:55:43
471
原创 error: mcrypt.h
今天在编译php的时候,出现如下错误php安装出错:configure: error: mcrypt.h not found. Please reinstall libmcrypt.,意思是,没有查找到mcrytp.h,需要安装libcrytp,在下面的地址下载libmarypt:wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmc
2015-08-05 23:13:05
381
原创 为什么/usr/local/apache2/bin/apxs明明存在,安装module的时候总是提示请指定有效的apxs路径呢?
很多人认为错误提示是说apxs不存在,其实真正的原因是apxs无法运行。刚刚测试了一下,在没装perl的情况下编译安装apache生成的apxs的第一行是:#!/replace/with/path/to/perl/interpreter -w 。使用apxs需要安装perl,因为apxs使用的perl脚本。接下来装perlyum install perl安装好后,必
2015-08-05 22:59:00
1689
原创 libiconv安装错误解决
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gztar zxvf libiconv-1.14.tar.gz cd libiconv-1.14/ ./configure --prefix=/usr/local/libiconvmake && make install出
2015-08-05 22:50:43
1969
原创 玩转mysql源码安装
1.首先下载mysql源码wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz2.解压3../configure --prefix=/usr/local/mysql/ --localstatedir=/usr/local/mysql/data --without-debug --w
2015-08-02 19:07:58
587
原创 玩转centos7最小安装
1.解决yum源问题(1)http://mirrors.163.com/.help/centos.html 下载cetos7的yum源 (2)激活centos7的网卡:/etc/sysconfig/network-scripts/ifcfg-eno16777736编辑ONBOOT=no改为yes (3)service network restart,重启网络 (4)由于ifc
2015-08-01 22:45:33
1065
原创 快速使用automake
1.hello.c#include #include #include #include "config.h" double get_epoch() { double sec; #ifdef HAVE_GETTIMEOFDAY struct timeval tv; gettimeofday(&
2015-07-26 13:07:13
390
原创 centos 6.5 源码安装apache
1.安装编译环境yum -y install gcc gcc-c++ glibc glibc-common pcre-devel flex autoconf make automake2.安装apr 和 apr-utilwget http://archive.apache.org/dist/apr/apr-1.4.8.tar.gzwget http://archi
2015-07-18 10:47:41
435
至简音乐1.1.zip
2021-03-15
python中setup_variables方法的问题
2014-05-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人