版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SchopenhauerZhang/article/details/85468584
区块链
基本思想
诞生于比特币的设计思想中;
区块链技术是从比特币的诞生中提炼出来的;
区块链是记录比特币交易账目历史的数据结构。
基本原理
交易:账本操作,一次交易过程
区块:某个时间段内所有交易,最终状态或者结果
链:记录下的完整日志
面临的问题
主要是3个:
- 隐私保护
- 分布式共识
状态变更在分布式网络中的一致结果 - 交易性能
分布式系统面临的核心问题
- 一致性问题
分布式系统中的多个服务节点在一系列操作,并在约定的协议的保障下,他们对处理结果达成的某中程度的认同(包含失败和成功)。
解决思路是:- 将可能引发不一致的并行操作进行串行化
比如在点杀等高并发业务中,将商品存在第三方服务上,所有服务节点统一去这个服务中取。
- 一致性要求
可终止性,约同性,合法性(系统内)
- 将可能引发不一致的并行操作进行串行化
- ACID原则
atomicity 原子性
consistency 一致性
isolation 隔离性
durability 持久性
常用算法
Paxos算法
系统内角色有:proposer、acceptor、learner
Raft算法
系统内角色有:(基于选举的)leader、(候选) landidate 、follower
比特币的pow算法
核心思想是经济惩罚,如果想要左右最终结果;根据设计原则其所具有的计算能力必须超过系统中所有节点的一半(少数服从多数)。
系统常见指标
可靠性
平均故障间隔时间、平均修复时间
密码与安全技术
hash算法:md5、sha、scrypt
区分对称加密和非对称加密的主要根据是加解密的密钥是否相同
- 对称加密
des、aes算法 - 非对称加密
rsa算法
特殊的数据结构和设计
布隆过滤器
merkle树
超级账本项目–Hyperledger
- 面向企业的分布式账本
- 代码托管在Gerrit
- 以及Fabric项目
ps
一致性和共识性的区别是:
一致性是系统对外呈现的状态,而共识性是系统内部各个服务节点间的约定。
未完待续