eclipse代码补全按键修改成Tab

https://www.eclipse.org/downloads/compare.php?release=oxygen   下载eclipse带有源文件的版本   打开Eclipse,点击 window -> show view -> other,搜索并选择 Plug-ins; 在其中找到org.eclipse.jface.text,右键单击导入源文件项目,import as -> Source Project, 然后你就会在workspace中看到此项目 找到verifykey函数 将其中的代码: // key != 0 switch (key) { case 0x1B: // Esc e...

Hadoop环境搭载

官网安装教程:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.13.0/hadoop-project-dist/hadoop-common/SingleCluster.html 环境 本教程使用 CentOS 7 64位 作为系统环境,请自行安装系统。 装好了 CentOS 系统之后,在安装 Hadoop 前还需要做一些必备工作。 创建hadoop用户 如果你安装 CentOS 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。 su # 上述提到的以 root 用户登录 useradd -m ...

共识机制

  区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去中心化的系统。在实践中,该流程分为两个方面: 一是选择一个独特的节点来产生一个区块 二是使分布式数据记录不可逆 实现上述流程的技术核心就是:共识机制。共识机制是区块链节点就区块信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。   当前主流的共识机制包括:工作量证明、权益证明、工作量证明与权益证明混合、股份授权证明、瑞波共识协议等。 (一)工作量证明   工作量证明(Pr...

比特币中难度调整

  由于哈希值的伪随机特性,要寻找4个前导0的哈希值,预期大概要进行2^16 次尝试,这个数学期望的计算次数,就是所要求的“工作量”。要求的前导0的个数越多,代表难度越大。   难度值是比特币系统中的结点在生成区块时的重要参考指标,它决定了节点大约需要经过多少次哈希运算才能产生一个合法的区块。   难度值被设定在无论节点计算能力如何,新区块产生速率都保持在每10分钟一个。   难度的调整是在每个完整节点中独立自动发生的。每2016个区块,所有节点都会按统一的公式自动调整难度。   根据实际时长与期望时长的比值,进行相应调整。   公式总结如下: $$新难度值= 旧难度值 \times \fra...

大数据处理-Bloom Filter

大数据处理——Bloom Filter   布隆过滤器(Bloom Filter)是由巴顿.布隆于一九七零年提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。   如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大。同时检索速度也越来越慢。   Bloom Filter 是一种空间效率很高的随机数据结构,Bloom filter 可以看做是对 bit-map 的扩展, 它的原理是:   当一个元素被加入集合时,通...

比特币交易本质–UTXO(Unspent Transaction Output)

  UTXO 代表 Unspent Transaction Output。   Transaction 被简称为 TX,所以上面这个短语缩写为 UTXO。   现在的银行也好、信用卡也好、证券交易系统也好,互联网第三方支付系统也好,其核心都是基于账户(account based)的设计,由关系数据库支撑。   数据库要确保两点,第一是你要确保业务规则得到遵守,张三的余额充足。第二是确保事务性,也就是原子性、一致性、隔离性、持久性(ACID)。这种基于账户的设计,简单直观,而且在 IT 系统设计里用了几十年,应该说没有什么问题。   我们假设一个这样的场景:张三挖到12.5 枚比特币。过了几天,...

多重签名

  在数字签名应用中,有时需要多个用户对同一个文件进行签名和认证。比如,一个公司发布的声明中涉及财务部、开发部、销售部、售后服务部等部门,需要的到这些部门签名认可,那么,就需要这些部门对这个声明文件进行签名。能够实现多个用户对同一文件进行签名的数字签名方案称作多重数字签名方案。   多重签名就是多个用户对同一个消息进行数字签名。   多重签名,可以简单的理解为一个数字资产的多个签名。签名标定的是数字资产所属和权限,多重签名预示着数字资产可由多人支配和管理。在加密货币领域,如果要动用一个加密货币地址的资金,通常需要该地址的所有人使用他的私钥(由用户专属保护)进行签名。那么,多重签名,就是动用这笔...

区块链的跨链技术介绍

  区块链技术是一种分布式账本技术,可以被应用在金融、健康医疗、供应链、资产管理等诸多领域,但是受吞吐量、网络孤立性、监管、伸缩性等因素的制约,目前的区块链项目并不能很好的服务于商业应用。在区块链所面临的诸多问题中,网络孤立性阻碍了不同区块链之间的协同操作,极大程度的限制了区块链的发挥空间。   如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。 侧链是以锚定比特币为基础的新型区块链,它以融合的方式实现新的金融生态目标和进一步扩展了比特币网络的应用场景。   联盟链...

2PC&3PC

  2PC用于保证跨多个节点操作的原子性,也就是说,跨多个节点的操作要么在所有节点上全部执行成功,要么全部失败。Paxos协议用于确保多个节点对某个投票(例如哪个节点为主节点)达成一致。   在分布式系统中,每一个机器节点虽然都能够明确地知道自己在进行实物操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果。为了保持实物处理的ACID特性,就需要引入一个称为“协调者(Coordinator)”的组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点则被称为“参与者(Participant)”。协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务真正进行提交。...

使用randA()生成randB()

  randA()表示可以随机生成1……A的整数 rand7()生成rand5() int Rand5(){ int x = ~(1<<31); // max int while(x > 5) x = Rand7(); return x; } 证明:我们要的1可能是第一次调用Rand7时产生,也可能是第二次,第三次,…第n次。 第1次就生成1,概率是1/7;第2次生成1,说明第1次没生成1到5间的数而生成了6,7, 所以概率是(2/7)*(1/7),依次类推。生成1的概率计算如下: P(x=1)=1/7 + (2/7) * 1/7 + (2/7)^2 * 1/7 + (2/7...