JAvaはブロックチェーンにおけるブロックhash難易度係数の設計を実現する


ブロックチェーンの難易度係数:ブロックチェーンの掘削を設計するのは容易ではない重要な因子であり、難易度係数が低いほど、掘削が容易である.難易度が高いほど、それに応じて難しい.例えばビットコインの難易度係数は18である.
難易度係数は一般にhash値の前置0の個数である.
JAvaブロックチェーンにおける設計の合理的な難易度係数
例えば難易度係数を6,すなわちブロックの有効hashとし,前に6個の0が必要である.
例えば難易度係数6の有効hashは、00000048 bfdc 5 e 67 aa 4486438 f 1350 a 6 cc 7 f 4477 feb 5562 b 0368 a 808 fdef 57
具体的なコード実装も簡単です.
/**
	 * 
	 *   :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;
	}