proof_chain.js
function buildProofChain(later_mci, earlier_mci, unit, arrBalls, onDone){
	if (earlier_mci === null)
		throw Error("earlier_mci=null, unit="+unit);
	if (later_mci === earlier_mci)
		return buildLastMileOfProofChain(earlier_mci, unit, arrBalls, onDone);
	buildProofChainOnMc(later_mci, earlier_mci, arrBalls, function(){
		buildLastMileOfProofChain(earlier_mci, unit, arrBalls, onDone);
	});
}
function buildProofChain(later_mci, earlier_mci, unit, arrBalls, onDone){
	if (earlier_mci === null)
		throw Error("earlier_mci=null, unit="+unit);
	if (later_mci === earlier_mci)
		return buildLastMileOfProofChain(earlier_mci, unit, arrBalls, onDone);
	buildProofChainOnMc(later_mci, earlier_mci, arrBalls, function(){
		buildLastMileOfProofChain(earlier_mci, unit, arrBalls, onDone);
	});
}
function buildProofChain ( later_mci , earlier_mci , unit , arrBalls , onDone ) { if ( earlier_mci === null ) throw Error ( "earlier_mci=null, unit=" + unit ) ; if ( later_mci === earlier_mci ) return buildLastMileOfProofChain ( earlier_mci , unit , arrBalls , onDone ) ; buildProofChainOnMc ( later_mci , earlier_mci , arrBalls , function ( ) { buildLastMileOfProofChain ( earlier_mci , unit , arrBalls , onDone ) ; } ) ; }
unit's MC index is earlier_mci
unit s MC index is earlier_mci