java 区块链中设计合理的难度系数

难度系数的概念

区块链的难度系数:是设计区块链挖矿难易的关键因子,难度系数越低,挖矿越容易。难度系数越高,相应越难。例如比特币的难度系数是18。
难度系数一般是hash值的前置0的个数。

java 区块链中设计合理的难度系数

例如难度系数定为6,也就是区块的有效hash,必须前面有6个0

例如难度系数为6的有效hash为:00000048bfdc5e67aa448686438f1350a6cc7f4477feb5562b0368a808fdef57

具体代码实现也很简单:

/**
     *
     * 类名:BlockService.java
     * 描述:区块服务
     * 时间:2018年3月12日 下午7:05:06
     *
     * @author cn.wenwuyi
     * @version 1.0
     * @param hash 区块hash
     * @return boolean
     */
    private boolean isValidHashDifficulty(String hash) {
        //定义难度系数
        int dificutty = 6;
        //定义标志符0(当然也可以定义其他,一般是0)
        char zero = ‘0‘;
        int i;
        for (i = 0; i < hash.length(); i++) {
            //获得hash字符串的i位置的字符
            char ichar = hash.charAt(i);
            //如果i处的值不为0则跳出
            if (ichar != zero) {
                break;
            }
        }
        //判断i是否大于等于难度系数,返回即可
        return i >= dificutty;
    }

原文地址:http://blog.51cto.com/4577390/2108237

时间: 2024-11-09 12:07:54

java 区块链中设计合理的难度系数的相关文章

Java 区块链BLOCKCHAIN中区块BLOCK的hash值的计算

Java 区块链中区块的hash值的计算 计算方法有多种,如,可以直接String拼接,也可以用stringbuffer,或者stringbuilder .这里采用了速度较快的stringbuilder,自己编程的时候可采用stringbuffer.其中index是区块BLOCK的索引,timestamp是区块BLOCK的时间戳,data是区块BLOCK内包含的数据,nonce为该区块的难度系数.总体计算代码如下: /** * 计算hash服务 * @param index 索引 * @para

JAVA区块链项目实战

课程介绍 全国首套,基于java的区块链实战教程.目的是让更多的java编程者了解区块链,掌握区块链开发.1.区块链理论:以node.js例子区块链原理有深刻理解:2.区块链java实战:深刻理解区块链原理后能用java编写区块链项目. ------第一部分 项目演示 目录------------------------------------------------------------ 1-第一章-01-java区块链项目实战教程前言 2-第一章-02-Java项目三台内网服务器演示 3-

区块链详解

[转载]这是一个微信公众号的文章,内容挺不错的 区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来. 可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教程.毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚.我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿.为什么挖矿越来越难等问题. 需要说明的是,我并非这方面的专家.虽然很早就关注,但是仔细地了解区块链,还是从今年初开始.文中的错误

区块链学习一

一.区块链的本质 区块链是什么?一句话,它是一种特殊的分布式数据库. 首先,区块链的主要作用是储存信息.任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库. 其次,任何人都可以架设服务器,加入区块链网络,成为一个节点.区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库.你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致. 二.区块链的最大特点 分布式数据库并非新发明,市场上早有此类产品.但是,区块链有一个革命性特点. 区块链没有

区块链入门教程(转)

原作者:阮一峰 原文链接:http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html 区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来. 可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教程.毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚.我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿.为什么挖矿越来越难等问

Java开发区块链的三大sdk库

如果你想将区块链合并到一个Java项目中,现在我们来看看就是这个细分领域中三个最大的OSS玩家. 好的伙计们,我们都听说过比特币,以太坊或其他加密货币,其中有一些时髦的名字围绕着我们常见的新闻,但我们作为Java开发人员知道如何轻松地与这些区块链技术进行交互吗?以下是可用于利用区块链趋势的前三大Java项目.该列表基于GitHub存储库星级排序.非常感谢评论和意见. BitcoinJ 这个名字很具描述性,你不觉得吗?如果你想知道如何创建比特币钱包并管理节点之间的交易,那么你应该尝试使用Bitco

从实现的角度解读区块链

前言 随着比特币的起起伏伏,区块链技术越来越受到关注.区块链和比特币是当下和人工智能一样风靡的领域.人们开始寻找区块链技术的用武之地,已经有了不少的尝试.但是区块链的价值所在众说纷纭,特别是一些媒体胡乱吹嘘或者是故意贬低,给大家都带来了不小的困惑.其实作为一名技术人员只需要理解其底层实现原理和运行机制,之后其应用场景和发展前景相信都会有自己的见解. 在阅读完本篇文章对区块链有了一定的了解后可以参考区块链的一个简单的模拟实现来加深自己的理解:(toychain) 欢迎star :) 区块链和比特币

【好课推荐】再不懂区块链,你就out了!快快开启进阶之路,挑战高薪职位吧

区块链技术被认为是继蒸汽机.电力.互联网之后,下一代颠覆性的核心技术. 如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的机器,将可能彻底改变整个人类社会价值传递的方式.以前是靠信誉.靠百年老店.权威机构等,区块链利用技术建立了新的信任方式,这是可以被量化的,从技术的角度实现的,所以说区块链成为了下一个信任的基石.区块链最核心的革命特性是改变千百年来落后的信用机制. 区块链从15年火到18年,作为人们口中的热门话题,区块链应用广

区块链技术未来猜想

近日央行推动的基于区块链的数字票据交易平台已经测试成功,中国央行将成为全球范围内,首个发行数字货币并开展正式应用的中央银行. 支付宝.微信的电子货币,已经深入人心取代纸质货币已是趋势,数字货币在此基础上进一步加强,发行.流通成本节省,银行,运钞系统将直接受影响.区块链还能提高交易和投资的效率,提升经济交易活动的便利性和透明度. 区块链物流应用在阿里巴巴.京东等巨头已经开始,带来的将是跨境购物更快速.交易风险大幅降低.质量也能带来保障,不再需要一系列繁琐的物流证明等. 区块链智能合约的实现信用创造