fixed discover nearest supernode issue

This commit is contained in:
Abhishek Sinha 2019-02-27 13:02:50 +05:30
parent 5241713f0b
commit a7c145c613

View File

@ -36351,7 +36351,9 @@
#!#MASTER_RECEIVING_ADDRESS=oVRq2nka1GtALQT8pbuLHAGjqAQ7PAo6uy#!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000 #!#MASTER_RECEIVING_ADDRESS=oVRq2nka1GtALQT8pbuLHAGjqAQ7PAo6uy#!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000
#!#supernodesPubKeys=02B2D2F40EC5BC9D336BAF14017D629B3A96892D5E86095923A50A734E2364FB34, #!#supernodesPubKeys=02B2D2F40EC5BC9D336BAF14017D629B3A96892D5E86095923A50A734E2364FB34,
#!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"}, #!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
#!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"167.99.5.116","port":"9002","kbucketId":"oJXNwJNNTt9SYaBZ1H3gjPkrZcpBhxspsM"}}`; #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"ranchimall1.duckdns.org","port":"9002","kbucketId":"oJeYebjgWV4Hszj5oP7sfXcj1U98P5M6q4"},
"ranchimall":{"ip":"ranchimall.duckdns.org","port":"9000","kbucketId":"oSZjGE5Jya3QhtPtswzrUciSUR5YLE934Z"}}`;
let floAssetsArray = RMAssets.split('#!#'); let floAssetsArray = RMAssets.split('#!#');
if (floAssetsArray.length > 0 && typeof floAssetsArray[0] !== undefined && if (floAssetsArray.length > 0 && typeof floAssetsArray[0] !== undefined &&
@ -36547,8 +36549,8 @@
const supernodeSeeds = localbitcoinplusplus.master_configurations.supernodeSeeds; const supernodeSeeds = localbitcoinplusplus.master_configurations.supernodeSeeds;
if (typeof supernodeSeeds !== "object") throw new Error( if (typeof supernodeSeeds !== "object") throw new Error(
"Failed to get supernode seeds."); "Failed to get supernode seeds.");
const supernodeSeedsObj = JSON.parse(supernodeSeeds); let supernodeSeedsObj = JSON.parse(supernodeSeeds);
const contactId = localbitcoinplusplus.kademlia.newBase64DiscoverId(flo_pub_key); const contactId = localbitcoinplusplus.kademlia.newBase64DiscoverId(flo_pub_key);
const seedContactArray = { const seedContactArray = {
@ -36560,26 +36562,23 @@
}, },
}; };
let nearestSupernode = Object.keys(supernodeSeedsObj).map(function(key) { Object.entries(supernodeSeedsObj).map(seedObj=>{
return supernodeSeedsObj[key];
}).map(seed=> {
localbitcoinplusplus.kademlia.addNewUserNodeInKbucket( localbitcoinplusplus.kademlia.addNewUserNodeInKbucket(
"FLO_TEST", seed.kbucketId, { id: seed.kbucketId, vectorClock: 0 }); "FLO_TEST", seedObj[1].kbucketId,
return seed; { id: seedObj[1].kbucketId, vectorClock: 0 });
}).filter(su_seed=>{
bucketId = localbitcoinplusplus.kademlia.floIdToKbucketId("FLO_TEST", su_seed.kbucketId);
let distance = KBucket.closest(bucketId);
console.log(distance);
return distance;
}); });
if (!localbitcoinplusplus.master_configurations let currentNodeBucketId = localbitcoinplusplus.kademlia
.supernodesPubKeys.includes(flo_pub_key)) { .floIdToKbucketId("FLO_TEST", flo_addr);
seedContactArray.transport = { let nearestSupernode = KBucket.closest(currentNodeBucketId, 1);
host: nearestSupernode[0].ip,
port: nearestSupernode[0].port, nearestSupernodeAddress = Object.values(supernodeSeedsObj).filter(seed=>
id: nearestSupernode[0].kbucketId nearestSupernode[0].data.id == seed.kbucketId);
}
seedContactArray.transport = {
host: nearestSupernodeAddress[0].ip,
port: nearestSupernodeAddress[0].port,
id: nearestSupernodeAddress[0].kbucketId
} }
const nodeDiscoveryOptions = { const nodeDiscoveryOptions = {
@ -36587,7 +36586,6 @@
} }
const kdiscover = new tristanDiscover(nodeDiscoveryOptions); const kdiscover = new tristanDiscover(nodeDiscoveryOptions);
console.log(kdiscover);
try { try {
let supernodeAddressUrl = `ws://${kdiscover.seeds.transport.host}:${kdiscover.seeds.transport.port}`; let supernodeAddressUrl = `ws://${kdiscover.seeds.transport.host}:${kdiscover.seeds.transport.port}`;
@ -40464,7 +40462,7 @@
var db; var db;
const DBName = "localbitcoinDB"; const DBName = "localbitcoinDB";
var request = window.indexedDB.open(DBName, 2); var request = window.indexedDB.open(DBName, 1);
request.onerror = function (event) { request.onerror = function (event) {
//https://stackoverflow.com/questions/13972385/invalidstateerror-while-opening-indexeddb-in-firefox //https://stackoverflow.com/questions/13972385/invalidstateerror-while-opening-indexeddb-in-firefox