fixed kbucket errors
This commit is contained in:
parent
c1f950a3e9
commit
3231b23506
@ -10315,7 +10315,12 @@
|
|||||||
readAllDB('kBucketStore')
|
readAllDB('kBucketStore')
|
||||||
.then(dbObject => {
|
.then(dbObject => {
|
||||||
if (typeof dbObject=="object") {
|
if (typeof dbObject=="object") {
|
||||||
dbObject.map(dbObj=>{
|
let su_flo_addr_array = localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||||
|
.map(pubk=>bitjs.FLO_TEST.pubkey2address(pubk));
|
||||||
|
// Prevent supernode to re-added in kbucket
|
||||||
|
dbObject
|
||||||
|
.filter(f=>!su_flo_addr_array.includes(f.data.id))
|
||||||
|
.map(dbObj=>{
|
||||||
this.addNewUserNodeInKbucket(blockchain, flo_addr, dbObj.data, KB);
|
this.addNewUserNodeInKbucket(blockchain, flo_addr, dbObj.data, KB);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -11060,12 +11065,14 @@
|
|||||||
return callback(true);
|
return callback(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
return callback(false);
|
return callback(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return callback(false);
|
||||||
}
|
}
|
||||||
return callback(false);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async receive_rpc_response(request) {
|
async receive_rpc_response(request) {
|
||||||
@ -14723,13 +14730,25 @@
|
|||||||
|
|
||||||
case "addNewKbucketNode":
|
case "addNewKbucketNode":
|
||||||
try {
|
try {
|
||||||
const newKbucketObjectArr = res_obj.params[0];
|
localbitcoinplusplus.kademlia.determineClosestSupernode(res_obj.globalParams.senderFloId)
|
||||||
newKbucketObjectArr.newKbucketNode.map(newKbucketObject=>{
|
.then(my_closest_su=>{
|
||||||
newKbucketObject_id_array = Object.values(newKbucketObject.id);
|
if (localbitcoinplusplus.wallets.my_local_flo_address !== my_closest_su[0].data.id) return;
|
||||||
newKbucketObject_idu8 = new Uint8Array(newKbucketObject_id_array);
|
|
||||||
localbitcoinplusplus.kademlia.addNewUserNodeInKbucketAndDB("FLO_TEST",
|
const newKbucketObjectObj = res_obj.params[0];
|
||||||
newKbucketObject_idu8, newKbucketObject.data);
|
if (typeof newKbucketObjectObj.newKbucketNode == "object") {
|
||||||
});
|
newKbucketObject = newKbucketObjectObj.newKbucketNode;
|
||||||
|
|
||||||
|
newKbucketObject_id_array = Object.values(newKbucketObject.id);
|
||||||
|
newKbucketObject_idu8 = new Uint8Array(newKbucketObject_id_array);
|
||||||
|
localbitcoinplusplus.kademlia.addNewUserNodeInKbucketAndDB("FLO_TEST",
|
||||||
|
newKbucketObject_idu8, newKbucketObject.data);
|
||||||
|
} else {
|
||||||
|
let mss = `WARNING: Failed to add ${res_obj.globalParams.senderFloId} to KBucket.`;
|
||||||
|
showMessage(mss)
|
||||||
|
console.warn(mss);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
@ -15877,27 +15896,29 @@
|
|||||||
const MY_LOCAL_FLO_PUBLIC_KEY = localbitcoinplusplus.wallets.my_local_flo_public_key =
|
const MY_LOCAL_FLO_PUBLIC_KEY = localbitcoinplusplus.wallets.my_local_flo_public_key =
|
||||||
idbData.myLocalFLOPublicKey;
|
idbData.myLocalFLOPublicKey;
|
||||||
|
|
||||||
// add/update yourself in your kbucket
|
|
||||||
await localbitcoinplusplus.kademlia.addNewUserNodeInKbucketAndDB(
|
|
||||||
"FLO_TEST", MY_LOCAL_FLO_ADDRESS,
|
|
||||||
{ id: MY_LOCAL_FLO_ADDRESS });
|
|
||||||
|
|
||||||
// restore k-bucket
|
// restore k-bucket
|
||||||
// const dbObj = await localbitcoinplusplus.kademlia.restoreKbucket(MY_LOCAL_FLO_ADDRESS, "FLO_TEST", KBucket);
|
const dbObj = await localbitcoinplusplus.kademlia.restoreKbucket(MY_LOCAL_FLO_ADDRESS, "FLO_TEST", KBucket);
|
||||||
// const dbObjSuKB = await localbitcoinplusplus.kademlia.restoreKbucket(MY_LOCAL_FLO_ADDRESS, "FLO_TEST", supernodeKBucket);
|
|
||||||
|
// Send your id to Supernode kbucket
|
||||||
// if (typeof dbObj=="object") {
|
if (!localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||||
// let addNewKNode = localbitcoinplusplus.rpc.prototype
|
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||||
// .send_rpc
|
let kbuck = localbitcoinplusplus.kademlia.floIdToKbucketId("FLO_TEST", MY_LOCAL_FLO_ADDRESS);
|
||||||
// .call(this, "addNewKbucketNode", {
|
readDB('kBucketStore', kbuck).then(userKBData=>{
|
||||||
// newKbucketNode: dbObj
|
if(typeof userKBData == "undefined") {
|
||||||
// });
|
msf = `WARNING: Failed to determine KBucket Id and hence failed to send Kbucket Id to Supernode.`
|
||||||
// console.log(addNewKNode);
|
showMessage(msf)
|
||||||
|
throw new Error(msf)
|
||||||
// doSend(addNewKNode);
|
};
|
||||||
// } else {
|
let addNewKNode = localbitcoinplusplus.rpc.prototype
|
||||||
// console.warn(`Failed to restore kBucket.`);
|
.send_rpc
|
||||||
// }
|
.call(this, "addNewKbucketNode", {
|
||||||
|
newKbucketNode: userKBData
|
||||||
|
});
|
||||||
|
console.log(addNewKNode);
|
||||||
|
|
||||||
|
doSend(addNewKNode);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
readDB('userPublicData', MY_LOCAL_FLO_ADDRESS).then(function (
|
readDB('userPublicData', MY_LOCAL_FLO_ADDRESS).then(function (
|
||||||
pubic_data_response) {
|
pubic_data_response) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user