主页 > imtoken官网下载1.0版本 > 比特币挖矿算力表,比特币挖矿公式
比特币挖矿算力表,比特币挖矿公式
比特币挖矿算力表,比特币挖矿公式 admin07-07 08:5468 次浏览
简化模拟:
0. 挖矿难度取整数d(d0)
1.随机生成一个整数x
2、对整数x进行摘要计算得到s,即s=hash(x) x
3、如果判断s开头的字符串为d“0”,则表示挖矿结束; 否则,跳到步骤 1。
随机数:继续随机生成整数,直到将生成的整数相加得到的字符串开始于数字0之前。
摘要算法选择sha256
代码:
1 packagecn.ubingo.block_chain; 2个
3 导入java.util.集合; 4 导入java.util.Date; 5 importjava.util.Random; 6个
7 公开课演示 { 8 staticrandomr=new random (; 9
10 publicstatic void main (string [] args) 11
12 int 难度=3; 13 字符串零 = 字符串。 join(', collections.ncopies) dificulty, '0'); 14系统。 出去。 打印(零); 15
16 Date start=newDate(; 17 long time=0; 18while(true) 19 string sha=sha.get sha 256 str Java(r.nextint()''); 20//system.out.println(sha);
21次; 2if(sha.Startswith) Zeros) ) 23 中断; 24) 25dateend=newdate(; 26 longuse=end.gettime(-start.gettime); 27
28 system.out.println (times ' in ' use ' mswithdificulty ' dificulty y ); ) 30
31}
输出结果:
000
4973 在 106 毫秒内,难度为 3
耗时计算:
增量难度从1开始,每个难度挖10次,时间最长的作为参考。
packagecn.ubingo.block_chain; 导入java.util.集合; 导入java.util.Date; importjava.util.随机; public class app { staticrandomr=new random (; publicstaticvoidmain (string [ ] args) {int dificulty=0; while (true).
差异y;
String zeros = String.join(', collections.ncopies) dificulty, '0');
system.out.println(Zeros; long maxTimes=0; long maxTimes=0; for(intI=0; i 10; i ) {
日期开始 = newDate(; long time = 0; while(true).
string sha=sha.get sha 256 str Java(r.nextint()'); //system.out.println(sha);
时间; sha.starts with (zeros ) ) break;
}
日期结束=newDate(; longuse=end.gettime(-start.gettime); if(usemaxuse) {
最大值 = 最大值;
maxTimes = 次;
}
}
system.out.println(maxtimes ' in ' maxuse ' mswithdificulty ' dificult y );
}
}
}
输出结果(代码还在运行):
19 in 32m s 困难 y 1
00
366 在 11 毫秒内困难 y 2
000
11377 在 73 毫秒内,难度为 3
0000
153888 377 毫秒,难度 4
00000
3160837 4568 毫秒比特币挖矿计算能力,难度 5
000000
55559940 在 81454 mswithdificulty 6
0000000
67485941 在 977748 困难 7
00000000
8540898666 在 12283075 mswithdificulty 8
000000000
================================================ ============================================
根据以上结果可以看出,当难度为8时,一个人挖大约需要204分钟(12283075ms)。
由于挖矿算法的随机性,要求在10分钟内完成挖矿比特币挖矿计算能力,需要204/10=20个同等算力的矿工同时进行挖矿。
如果难度是72(比特币当前的难度),就可以知道需要多少矿工。
由于挖矿算法的随机性,谁的算力强,谁的矿工多,谁挖矿的概率高,谁就可以发财。 (于是出现了矿机和地雷)
================================================ ============================================
代码中使用的工具类型如下(
packagecn.ubingo.block_chain; 导入 Java.io.unsupportedencodingexception; 导入 Java.security.message 摘要; 导入 Java.security.nosuchalgorithmexception; 使用Publicclassha{/***Java原生摘要实现SHA256摘要计算
* @paramcontent 原文
*@返回
*/
publicstaticstringgetsha 256 str Java(字符串内容){
消息诊断消息诊断;
字符串 encodeStr = ' '; 尝试{
消息摘要 = 消息摘要。 获取实例(sha-256);
消息摘要.更新(content.getbytes('utf-8'));
encodestr = byte2hex(消息摘要.digest();
} 赶上(nosuchalgorithmexceptione))
e. 打印任务跟踪 (;
} 赶上(不支持的编码异常){
e. 打印任务跟踪 (;
} 返回 encodeStr;
(/* *将字节转为十六进制
* @parambytes
*@返回
*/
privatestaticstringbyte2hex{
字符串缓冲区 string buffer = new string buffer (;
字符串临时=空; 对于(intI=0;我
temp=integer.to hex string (bytes [ I ]0x ff ); if(temp.length(==1) ) {//1位填充操作
stringbuffer.append('0);
}
stringbuffer.append(temp;
} returnstringBuffer.toString(;
}
}
UGUI实现ScrollView无限滚动效果gpu云服务器挖矿,如何防止阿里云服务器被挖btccpu挖矿,挖矿cpu需求