Liu Ke Blog

洋溢着永不停息的生命激情!

Paxos算法

区块链学习笔记

简单分布式系统 我们先从最简单的问题开始。对于只有两个节点的分布式系统,一个客户端节点,一个服务器节点,客户端向服务器发送消息,想要操作服务器上的数据(存储或更新),最简单的算法1为: 1. 客户端每次向服务器发送一条命令 消息如果损坏,可以在消息中添加校验码。但是,如果这条消息丢失了,根本没到达服务器节点,那么这个算法是无法处理的。所以继续改进这个算法,服务器节点每收到一条消息,就...

密码学

区块链学习笔记

Hash算法 目前常见的Hash算法包括MD5和SHA系列算法。 MD4(RFC120) MD5(RFC1321) SHA:SHA-1,SHA-224,SHA-256,SHA-384,SHA-512 Hash算法不是加密算法,不能用于信息的保护。常用于对口令的保存。口令强度不够,容易被字典攻击(搜集常用口令计算对应哈希值制成字典)和彩虹表攻击(只保存一条Hash链的首尾...

Fabric CA学习

区块链学习笔记

CA负责网络中所有的证书的管理(分发、撤销等),实现标准的PKI(Public Key Infrastructure,公开密钥基础设施)架构。主要代码在单独的fabric-ca项目中。CA在签发证书后,自身不参与网络中的交易过程。 客户端应用使用SDK与Fabric网络建立联系。客户端首先从CA获得合法的身份证书来加入网络内的应用通道之后,才能发起交易。命令行客户端的主要实现代码在peer...

深入学习Fabric链码Chaincode

区块链学习笔记

链码(chaincode)或者链上代码,是Fabric中十分关键的一个概念。链码源自智能合约的思想,并进行了进一步扩展,支持多种高级编程语言。 目前Fabric项目中提供了用户链码和系统链码。前者运行在单独的容器中,提供对上层应用的支持,后者则嵌入在系统内,提供对系统进行配置、管理的支持。 一般所谈的链码为用户链码,通过提供可编程能力提供了对上层应用的支持。用户通过链码相关的API编写用...

拜占庭共识机制

区块链学习笔记

This document is not completed and will be updated anytime. Contents 拜占庭将军问题 问题描述 口头协议(OM) 书面协议(SM) 实用拜占庭容错协议PBFT PBFT算法的步骤 客户端C 预准备...

Hyperledger Fabric 0.6&1.0架构

区块链学习笔记

参考资料来源:巴比特 Fabric 0.6总体架构 我们先看看0.6版本的总体架构: 对应的0.6版本的运行时架构: 0.6版本的架构特点 结构简单: 应用-成员管理-Peer的三角形关系,主要业务功能全部集中于Peer节点; 架构问题:由于peer节点承担了太多的功能,所以带来扩展性、可维护性、安全性、业务隔离等方面的诸多问题,所以0.6版本在推出后,并...

区块链共识机制梳理

区块链学习笔记

区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的。本文梳理一下目前行业中经典的共识机制进行概要描述。 PoW:Proof of Work,工作量证明 依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。实在是太有名了...

比特币:一种点对点的电子现金系统

中本聪论文:Bitcoin: A Peer-to-Peer Electronic Cash System

原文作者:中本聪 执行翻译:8btc.com 巴比特 QQagent 作者邮箱:Satoshin@gmx.com [摘要]本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间 不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才 能防...

Ubuntu(Linux)系统管理命令、用户和权限管理命令

Python学习笔记

Ubuntu(Linux)系统管理命令 1. cal查看当前日历 -y显示整年日历 2. date显示或设置时间 设置时间需要管理员权限 3. ps查看进程信息 一般使用-aux -a:显示终端上的所有进程,包括其他用户的进程 -u:显示进程的详细状态 -x:显示没有控制终端的进程 -w:显示加宽,以显示更多的信息 -r:只显示正在运行的进程 4. top动态显示进程 -d...

Ubuntu(Linux)文件管理命令

Python学习笔记

Ubuntu(Linux)及其命令 文件管理 Windows和Linux文件系统的区别: Windows:每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形。 Linux下,我们看不到驱动器的盘符,我们看到的是文件夹(目录). Ubuntu没有盘符的概念,只有一个根目录\,所有的文件都在它下面 Ubuntu中的一些快捷键: Ctrl+C终止 Ctrl+Shi...