master = peers[0];
UtilsDHT2.perfectRouting(peers);
// do testing
Data data = new Data(new byte[44444]);
RoutingConfiguration rc = new RoutingConfiguration(2, 10, 2);
RequestP2PConfiguration pc = new RequestP2PConfiguration(3, 5, 0);
FuturePut fput = peers[444].put(peers[30].peerID()).data(new Number160(5), data)
.domainKey(Number160.createHash("test")).routingConfiguration(rc)
.requestP2PConfiguration(pc).start();
fput.awaitUninterruptibly();
fput.futureRequests().awaitUninterruptibly();
Assert.assertEquals(true, fput.isSuccess());
System.err.println("remove");
rc = new RoutingConfiguration(4, 0, 10, 1);
pc = new RequestP2PConfiguration(4, 0, 0);
FutureRemove frem = peers[222].remove(peers[30].peerID()).returnResults()
.domainKey(Number160.createHash("test")).contentKey(new Number160(5))
.routingConfiguration(rc).requestP2PConfiguration(pc).start();
frem.awaitUninterruptibly();
Assert.assertEquals(true, frem.isSuccess());
Assert.assertEquals(3, frem.rawData().size());
System.err.println("get");
rc = new RoutingConfiguration(4, 0, 0, 1);
pc = new RequestP2PConfiguration(4, 0, 0);
FutureGet fget = peers[555].get(peers[30].peerID()).domainKey(Number160.createHash("test"))
.contentKey(new Number160(5)).routingConfiguration(rc).requestP2PConfiguration(pc).start();
fget.awaitUninterruptibly();
Assert.assertEquals(false, fget.isSuccess());