decentralized-internet
Version:
An NPM library of programs to create decentralized web and distributed computing projects
1 lines • 538 B
JavaScript
;const Endpoint=require("../Endpoint"),interval=require("../interval"),findPredecessor=function(e){if(!e)throw new Error("Peer is missing.");return(n,t)=>{const r=n.body.id;if(!r)return t.sendStatus(400);let i=new Endpoint(e.self);const s=()=>{e.remote(i).run("successor",(n,o)=>n?t.sendStatus(500):interval({left:i.id,right:o.id,type:"leftopen"}).contains(r)?t.send(i):void e.remote(i).run("closest-preceding-finger",{id:r},(e,n)=>{if(e)return t.sendStatus(500);i=new Endpoint(n),s()}))};s()}};module.exports=findPredecessor;