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