1- we need it to use our own libp2p instance 2- our own peerset manager 3- it needs to be replace-able 4- we just need the consensus