コード例 #1
0
ファイル: merkle.js プロジェクト: kyonetca/ucoin
 initialize: function (leaves) {
   var tree = merkle(leaves, 'sha1').process();
   this.depth = tree.depth();
   this.nodes = tree.nodes();
   this.levels = [];
   for (var i = 0; i < tree.levels(); i++) {
     this.levels[i] = tree.level(i);
   }
   return this;
 },
コード例 #2
0
ファイル: merkle.js プロジェクト: G4dter/duniter
 this.initialize = function (leaves) {
   var tree = merkle('sha256').sync(leaves);
   this.depth = tree.depth();
   this.nodes = tree.nodes();
   this.levels = [];
   for (var i = 0; i < tree.levels(); i++) {
     this.levels[i] = tree.level(i);
   }
   return this;
 };
コード例 #3
0
ファイル: BlockchainService.js プロジェクト: kyonetca/ucoin
 function createNextEmptyBlock (current, members, leaving, done) {
   var block = new Block();
   block.version = 1;
   block.currency = current.currency;
   block.number = current.number + 1;
   block.previousHash = current.hash;
   block.previousIssuer = current.issuer;
   // Members merkle
   var stayers = members.slice(); // copy
   var leavers = leaving.slice(); // copy
   stayers.sort();
   leavers.sort();
   var tree = merkle(stayers, 'sha1').process();
   block.membersCount = stayers.length;
   block.membersRoot = tree.root();
   block.membersChanges = [];
   leavers.forEach(function(fpr){
     block.membersChanges.push('-' + fpr);
   });
   block.keysChanges = [];
   done(null, block);
 }