前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 区块链中设计合理的难度系数

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

原创
作者头像
吴生
修改2018-09-18 18:10:28
6990
修改2018-09-18 18:10:28
举报
文章被收录于专栏:吴生的专栏吴生的专栏

难度系数的概念

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

难度系数一般是hash值的前置0的个数。

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

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

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

具体代码实现也很简单:

代码语言:java
复制
/**
     * 
     * 类名: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;
    }

作者:文武艺

推荐阅读:https://www.roncoo.com/course/view/45408f63110e428389881f4d84d0cd30

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档