changeset 198:dd3c0ba6a0a6

fix topology manager
author akahori
date Sat, 09 Mar 2019 21:53:37 +0900
parents 4d8f90e8a92c
children 87e9abce774f ef5aad739292
files scripts/Log/paxos.dot scripts/local_test_run.sh scripts/paxos.sh scripts/ring.dot src/main/java/christie/blockchain/Block.java src/main/java/christie/blockchain/BlockChain.java src/main/java/christie/blockchain/FileData.java src/main/java/christie/blockchain/Miner.java src/main/java/christie/blockchain/Transaction.java src/main/java/christie/daemon/IncomingTcpConnection.java src/main/java/christie/datagear/command/Command.java src/main/java/christie/datagear/command/RemotePeekCommand.java src/main/java/christie/datagear/command/RemoteTakeCommand.java src/main/java/christie/test/topology/localTestTopology/StartTorqueTestTopology.java src/main/java/christie/test/topology/paxos/CheckMyName.java src/main/java/christie/test/topology/paxos/Proposal.java src/main/java/christie/test/topology/paxos/StartLocalPaxos.java src/main/java/christie/test/topology/paxos/proposer/ProposerCodeGear.java src/main/java/christie/test/topology/paxos/proposer/ReceivePromiseCodeGear.java src/main/java/christie/topology/manager/CreateTreeTopology.java src/main/java/christie/topology/manager/IncomingHosts.java src/main/java/christie/topology/manager/RecordTopology.java src/main/java/christie/topology/node/IncomingConnectionInfo.java src/test/java/christie/paxos/PaxosTest.java
diffstat 24 files changed, 92 insertions(+), 91 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/Log/paxos.dot	Sat Mar 09 14:03:25 2019 +0900
+++ b/scripts/Log/paxos.dot	Sat Mar 09 21:53:37 2019 +0900
@@ -8,8 +8,11 @@
 	acceptor2 -> learner0 [label="learner0"]
 	acceptor2 -> proposer0 [label="proposer0"]
 	acceptor2 -> proposer1 [label="proposer1"]
+	proposer0 -> acceptor0 [label="acceptor0"]
 	proposer0 -> acceptor1 [label="acceptor1"]
 	proposer0 -> acceptor2 [label="acceptor2"]
 	proposer1 -> acceptor0 [label="acceptor0"]
 	proposer1 -> acceptor1 [label="acceptor1"]
+	proposer1 -> acceptor2 [label="acceptor2"]
+
 }
--- a/scripts/local_test_run.sh	Sat Mar 09 14:03:25 2019 +0900
+++ b/scripts/local_test_run.sh	Sat Mar 09 21:53:37 2019 +0900
@@ -17,8 +17,6 @@
 #open ./topology/ring.png
 java -jar ${jar_path}${topo_jarname} --localPort 10000 --confFile Log/ring.dot &
 
-sleep 3
-
 cnt=0
 while [ $cnt -lt $max ]
 do
--- a/scripts/paxos.sh	Sat Mar 09 14:03:25 2019 +0900
+++ b/scripts/paxos.sh	Sat Mar 09 21:53:37 2019 +0900
@@ -21,7 +21,7 @@
 cnt=0
 while (($cnt < $max ))
 do
-   (java -cp ${jar_path} christie.test.topology.paxos.StartPaxosNode --managerHost localhost --managerPort 10000 --localPort $(( 10001 + cnt )) --level debug) &
+   java -cp ${jar_path} christie.test.topology.paxos.StartPaxosNode --managerHost localhost --managerPort 10000 --localPort $(( 10001 + cnt )) --level debug &
    cnt=$(( cnt + 1 ))
 done
 wait
\ No newline at end of file
--- a/scripts/ring.dot	Sat Mar 09 14:03:25 2019 +0900
+++ b/scripts/ring.dot	Sat Mar 09 21:53:37 2019 +0900
@@ -1,8 +1,5 @@
 digraph test {
 	node0 -> node1 [label="right"]
-	node0 -> node2 [label="left"]
 	node1 -> node2 [label="right"]
-	node1 -> node0 [label="left"]
 	node2 -> node0 [label="right"]
-	node2 -> node1 [label="left"]
 }
--- a/src/main/java/christie/blockchain/Block.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/blockchain/Block.java	Sat Mar 09 21:53:37 2019 +0900
@@ -1,25 +1,25 @@
 package christie.blockchain;
 
+import org.msgpack.annotation.Message;
+
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
+@Message
 public class Block {
     private BlockHeader header;
 
-    private String data;
-
     private List<Transaction> transactionsList = new CopyOnWriteArrayList<>();
 
-    public Block(String data, long difficulty, long timestamp){
-        this("".getBytes(), difficulty, 0, data, timestamp, null);
+    public Block(long difficulty, long timestamp){
+        this("".getBytes(), difficulty, 0, timestamp, null);
     }
-    public Block(byte[] parentHash, long difficulty, long number, String data, long timestamp){
-        this(parentHash, difficulty, number, data, timestamp, null);
+    public Block(byte[] parentHash, long difficulty, long number, long timestamp){
+        this(parentHash, difficulty, number, timestamp, null);
     }
 
-    public Block(byte[] parentHash, long difficulty, long number, String data, long timestamp, List<Transaction> transactionsList) {
+    public Block(byte[] parentHash, long difficulty, long number, long timestamp, List<Transaction> transactionsList) {
         this.header = new BlockHeader(parentHash, difficulty, number, timestamp);
-        this.data = data;
         if (this.transactionsList == null) {
             this.transactionsList = new CopyOnWriteArrayList<>();
         }
@@ -41,10 +41,6 @@
         return this.header.getParentHash();
     }
 
-    public String getData(){
-        return data;
-    }
-
     public void setNonce(long nonce) {
         this.header.setNonce(nonce);
     }
--- a/src/main/java/christie/blockchain/BlockChain.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/blockchain/BlockChain.java	Sat Mar 09 21:53:37 2019 +0900
@@ -14,36 +14,36 @@
 
     private Block bestBlock;
 
-
     public static void main(String[] args) {
 
-        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
+        /*Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
 
         ECKey ecKeyA = new ECKey();
         ECKey ecKeyB = new ECKey();
 
         Transaction transaction = new Transaction(ecKeyA.getPublicKey(), ecKeyB.getPublicKey(), "hello");
         transaction.generateSignature(ecKeyA.getPrivateKey());
-        System.out.println(transaction.verifiySignature());
+        System.out.println(transaction.verifiySignature());*/
+        new BlockChain().testBlockMining();
     }
 
     public void testBlockMining(){
         BlockChain blockChain = new BlockChain();
-        blockChain.difficulty = 1;
+        blockChain.difficulty = 2;
         Miner miner = new Miner();
         long startTime = System.currentTimeMillis();
 
         Block genesisBlock = blockChain.createNewBlock("Hi im the first block");
         miner.mineBlock(genesisBlock, blockChain.difficulty);
-        System.out.println("Hash for block 1 : " + genesisBlock.getData() + " Nonce : " + genesisBlock.getNonce());
+        //System.out.println("Hash for block 1 : " + genesisBlock.getData() + " Nonce : " + genesisBlock.getNonce());
 
         Block secondBlock = blockChain.createNewBlock(genesisBlock, "Yo im the second block");
         miner.mineBlock(secondBlock, blockChain.difficulty);
-        System.out.println("Hash for block 2 : " + secondBlock.getData() + " Nonce : " + secondBlock.getNonce());
+        //System.out.println("Hash for block 2 : " + secondBlock.getData() + " Nonce : " + secondBlock.getNonce());
 
         Block thirdBlock = blockChain.createNewBlock(secondBlock, "Hey im the third block");
         miner.mineBlock(thirdBlock, blockChain.difficulty);
-        System.out.println("Hash for block 3 : " + thirdBlock.getData() + " Nonce : " + thirdBlock.getNonce());
+        //System.out.println("Hash for block 3 : " + thirdBlock.getData() + " Nonce : " + thirdBlock.getNonce());
 
 
         blockChain.blockList.add(genesisBlock);
@@ -102,7 +102,6 @@
 
         Block block = new Block(parent.getPresentHash(),
                 difficulty, blockNumber,
-                data,
                 time);
 
         return block;
@@ -110,7 +109,7 @@
 
     public synchronized Block createGenesisBlock(String data){
         long time = System.currentTimeMillis() / 1000;
-        Block block = new Block(data, 1, time);
+        Block block = new Block(1, time);
         return block;
     }
 
@@ -118,4 +117,7 @@
         return bestBlock;
     }
 
+    public long getSize() {
+        return bestBlock.getNumber() + 1;
+    }
 }
--- a/src/main/java/christie/blockchain/FileData.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/blockchain/FileData.java	Sat Mar 09 21:53:37 2019 +0900
@@ -4,6 +4,7 @@
 import org.msgpack.annotation.Message;
 
 import java.io.File;
+import java.nio.file.Path;
 
 @Message
 public class FileData {
@@ -13,9 +14,8 @@
 
     public FileData(){}
 
-    public File read(){
+    public File read(Path path){
         return this.file;
-
     }
 
     public void write(){
--- a/src/main/java/christie/blockchain/Miner.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/blockchain/Miner.java	Sat Mar 09 21:53:37 2019 +0900
@@ -27,7 +27,8 @@
             hashStr = new String(HashUtil.sha256(concat), Charset.forName("utf-8"));
         }
         newBlock.setNonce(nonce);
-        System.out.println("Block Mined!!! : " + hashStr);
+
+        System.out.println("Block Mined!!! : " + hashStr.getBytes());
 
     }
 
--- a/src/main/java/christie/blockchain/Transaction.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/blockchain/Transaction.java	Sat Mar 09 21:53:37 2019 +0900
@@ -1,12 +1,14 @@
 package christie.blockchain;
 
+import org.msgpack.annotation.Message;
+
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.math.BigInteger;
 import java.security.PrivateKey;
 import java.security.PublicKey;
 
-// インターフェイスにしたほうがいいかもしれない. 後からdataの内容変える可能性がある.
+@Message
 public class Transaction {
     private byte[] hash;
 
--- a/src/main/java/christie/daemon/IncomingTcpConnection.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/daemon/IncomingTcpConnection.java	Sat Mar 09 21:53:37 2019 +0900
@@ -63,7 +63,11 @@
                         break;
 
                     case REMOTEPEEK:
-                        cgm.getLocalDGM().runCommand(new RemotePeekCommand(msg, connection));
+                        try {
+                            cgm.getLocalDGM().runCommand(new RemotePeekCommand(msg, connection));
+                        } catch (ClassNotFoundException e) {
+                            e.printStackTrace();
+                        }
                         break;
                     case REMOTETAKE:
                         cgm.getLocalDGM().runCommand(new RemoteTakeCommand(msg, connection));
@@ -90,6 +94,8 @@
                 return;
             } catch (IOException e) {
                 e.printStackTrace();
+            } catch (ClassNotFoundException e) {
+                e.printStackTrace();
             }
         }
     }
--- a/src/main/java/christie/datagear/command/Command.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/datagear/command/Command.java	Sat Mar 09 21:53:37 2019 +0900
@@ -35,4 +35,7 @@
         this.dg.setData(obj);
     }
 
+    //public void removeInputs(){
+        //cg.getIdg().removeInputs(key);
+    //}
 }
--- a/src/main/java/christie/datagear/command/RemotePeekCommand.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/datagear/command/RemotePeekCommand.java	Sat Mar 09 21:53:37 2019 +0900
@@ -4,7 +4,7 @@
 import christie.datagear.RemoteMessage;
 
 public class RemotePeekCommand extends RemoteTakeCommand {
-    public RemotePeekCommand(RemoteMessage msg, Connection cn) {
+    public RemotePeekCommand(RemoteMessage msg, Connection cn) throws ClassNotFoundException {
         super(msg, cn);
         this.type = CommandType.REMOTEPEEK;
     }
--- a/src/main/java/christie/datagear/command/RemoteTakeCommand.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/datagear/command/RemoteTakeCommand.java	Sat Mar 09 21:53:37 2019 +0900
@@ -4,6 +4,7 @@
 import christie.datagear.RemoteMessage;
 import christie.datagear.command.Command;
 import christie.datagear.command.CommandType;
+import christie.datagear.dg.DataGear;
 import christie.datagear.dg.MessagePackDataGear;
 import org.msgpack.MessagePack;
 
@@ -12,26 +13,22 @@
 
 public class RemoteTakeCommand extends Command {
 
-    public RemoteTakeCommand(RemoteMessage msg, Connection cn) {
-        this.type = CommandType.REMOTETAKE;
-        this.fromDgmName = msg.fromDgmName;
-        this.key = msg.key;
-        try {
-            this.clazz = Class.forName(msg.clazz);
-        } catch (ClassNotFoundException e) {
-            e.printStackTrace();
-        }
-        this.dg = new MessagePackDataGear(this.clazz);
-        this.connection = cn;
+    public RemoteTakeCommand(RemoteMessage msg, Connection cn) throws ClassNotFoundException {
+        this(msg.fromDgmName, msg.key, cn, Class.forName(msg.clazz));
     }
 
     public RemoteTakeCommand(String fromDgmName, Command cm, Connection cn) {
+        this(fromDgmName, cm.key, cn, cm.clazz);
+    }
+
+    private RemoteTakeCommand(String fromDgmName, String key, Connection cn, Class clazz){
         this.type = CommandType.REMOTETAKE;
         this.fromDgmName = fromDgmName;
-        this.key = cm.key;
-        this.clazz = cm.clazz;
-        this.dg = new MessagePackDataGear(clazz);
+        this.key = key;
+        this.clazz = clazz;
+        this.dg = new MessagePackDataGear(this.clazz);
         this.connection = cn;
+
     }
 
     @Override
--- a/src/main/java/christie/test/topology/localTestTopology/StartTorqueTestTopology.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/localTestTopology/StartTorqueTestTopology.java	Sat Mar 09 21:53:37 2019 +0900
@@ -15,6 +15,6 @@
         /* Torque */
         TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(args);
         StartTopologyNode startTopologyNode = new StartTopologyNode(topologyNodeConfig, new LTRemoteIncrement());
-        startTopologyNode.getLocalDGM().put("num", 0);
+        startTopologyNode.put("num", 0);
     }
 }
--- a/src/main/java/christie/test/topology/paxos/CheckMyName.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/CheckMyName.java	Sat Mar 09 21:53:37 2019 +0900
@@ -7,6 +7,8 @@
 import christie.test.topology.paxos.learner.LearnerCodeGear;
 import christie.test.topology.paxos.proposer.ProposerCodeGear;
 import christie.topology.TopologyDataGear;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -16,6 +18,9 @@
     @Peek
     TopologyDataGear topoDG;
 
+    Logger logger = LogManager.getLogger(CheckMyName.class);
+
+
     Pattern pattern = Pattern.compile("^(proposer|acceptor|learner)([0-9]+)$");
 
     @Override
@@ -26,8 +31,17 @@
         matcher.find();
         String type = matcher.group(1);
 
-        if(type.equals("proposer"))      cgm.setup(new ProposerCodeGear());
-        else if(type.equals("acceptor")) cgm.setup(new AcceptorCodeGear());
-        else if(type.equals("learner"))  cgm.setup(new LearnerCodeGear());
+        if(type.equals("proposer")) {
+            //logger.debug("proposer : " + nodeName);
+            cgm.setup(new ProposerCodeGear());
+        }
+        else if(type.equals("acceptor")) {
+            //logger.debug("acceptor : " + nodeName);
+            cgm.setup(new AcceptorCodeGear());
+        }
+        else if(type.equals("learner")) {
+            //logger.debug("learner : " + nodeName);
+            cgm.setup(new LearnerCodeGear());
+        }
     }
 }
--- a/src/main/java/christie/test/topology/paxos/Proposal.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/Proposal.java	Sat Mar 09 21:53:37 2019 +0900
@@ -9,7 +9,7 @@
     private int acceptorNum = 0;
     private int nodeNum = 0;
     private int number = 0;
-    private int value = 0;
+    private int value = -1; // not selected value
     private int id = 0;
     private int round = 0;
     private boolean accepted = false;
@@ -32,8 +32,6 @@
 
     public int getValue(){ return this.value; }
 
-    public void setNumber(int number) { this.number = number; }
-
     public int getNumber(){
         return this.number;
     }
@@ -72,19 +70,19 @@
         this.acceptorName = acceptorName;
     }
 
-    public boolean equalValue(Proposal proposal){
-        return this.equalValue(proposal.value);
+    public String toString() {
+        return "Proposal : number = " + number + ",  " +
+                           "value = " + value;
     }
 
-    public boolean equalValue(int value){
-        if(this.value == value) return true;
+    public boolean equalNumberAndValue(Proposal proposal){
+        if(proposal.getNumber() == this.number &&
+           proposal.getValue()  == this.value)
+            return true;
+
         return false;
     }
 
-    public String toString() {
-        return "Proposal : number = " + number + ",  value = " + value;
-    }
-
 
 
 }
--- a/src/main/java/christie/test/topology/paxos/StartLocalPaxos.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/StartLocalPaxos.java	Sat Mar 09 21:53:37 2019 +0900
@@ -2,9 +2,6 @@
 
 import christie.codegear.CodeGearManager;
 import christie.codegear.StartCodeGear;
-import christie.test.topology.paxos.acceptor.AcceptorCodeGear;
-import christie.test.topology.paxos.learner.LearnerCodeGear;
-import christie.test.topology.paxos.proposer.ProposerCodeGear;
 import christie.topology.TopologyDataGear;
 
 import java.util.ArrayList;
--- a/src/main/java/christie/test/topology/paxos/proposer/ProposerCodeGear.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/proposer/ProposerCodeGear.java	Sat Mar 09 21:53:37 2019 +0900
@@ -19,11 +19,10 @@
     @Override
     protected void run(CodeGearManager cgm) {
         String nodeName = topoDG.getNodeName();
-        int proposerNum = topoDG.getTotalNodeNum();
-        List<String> _CLIST = topoDG.getConnectionList();
+        int totalNodeNum = topoDG.getTotalNodeNum();
 
         int id = Character.getNumericValue(nodeName.charAt(nodeName.length() - 1)) + 1;
-        cgm.setup(new SendPrepareRequestCodeGear(new Proposal(nodeName, proposerNum, id, id, _CLIST.size())));
+        cgm.setup(new SendPrepareRequestCodeGear(new Proposal(nodeName, totalNodeNum, id, id, topoDG.getConnectionList().size())));
     }
 }
 
--- a/src/main/java/christie/test/topology/paxos/proposer/ReceivePromiseCodeGear.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/proposer/ReceivePromiseCodeGear.java	Sat Mar 09 21:53:37 2019 +0900
@@ -47,13 +47,12 @@
                     sendedProposal.setValue(receivePromise.getValue());
                 }
             }
-        }
-
-        if(promiseCount > sendedProposal.getAcceptorNum()/2){
+            if(promiseCount > sendedProposal.getAcceptorNum()/2){
 
-            cgm.setup(new SendAcceptRequestCodeGear(sendedProposal));
-        }else {
-            cgm.setup(new ReceivePromiseCodeGear(promiseCount, sendedProposal, maxRecvProposalNumber));
+                cgm.setup(new SendAcceptRequestCodeGear(sendedProposal));
+            }else {
+                cgm.setup(new ReceivePromiseCodeGear(promiseCount, sendedProposal, maxRecvProposalNumber));
+            }
         }
     }
 }
--- a/src/main/java/christie/topology/manager/CreateTreeTopology.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/topology/manager/CreateTreeTopology.java	Sat Mar 09 21:53:37 2019 +0900
@@ -84,7 +84,7 @@
         getLocalDGM().put("parentManager", parentManager);
 
         getDGM(nodeName).put("connectNodeNum", 1);
-        getDGM(nodeName).put("remoteNodeInfo", new HostMessage());
+        //getDGM(nodeName).put("remoteNodeInfo", new HostMessage());
         getDGM(nodeName).put("_CONNECTIONMESSAGE", new Message());
         getDGM(nodeName).put("_STARTMESSAGE", new Message());
         getLocalDGM().put("startTime", System.currentTimeMillis());
--- a/src/main/java/christie/topology/manager/IncomingHosts.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/topology/manager/IncomingHosts.java	Sat Mar 09 21:53:37 2019 +0900
@@ -92,7 +92,7 @@
                         put(key, "remoteNodeInfo", connection);
                     }
                 }
-                put(key, "remoteNodeInfo", new HostMessage()); // end mark
+                //put(key, "remoteNodeInfo", new HostMessage()); // end mark
             }
         }else{
             cgm.setup(new IncomingHosts());
--- a/src/main/java/christie/topology/manager/RecordTopology.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/topology/manager/RecordTopology.java	Sat Mar 09 21:53:37 2019 +0900
@@ -10,8 +10,6 @@
 import java.util.HashMap;
 import java.util.LinkedList;
 
-
-// Recordだけじゃなく, sendも担っているので名前変えたほうがいいかも
 public class RecordTopology extends CodeGear {
 
     @Take
--- a/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Sat Mar 09 21:53:37 2019 +0900
@@ -15,8 +15,6 @@
     @Take
     HostMessage remoteNodeInfo;
 
-    @Take
-    TopologyDataGear topoDG;
 
     int count;
 
@@ -33,12 +31,6 @@
     protected void run(CodeGearManager cgm) {
         String connectionName = remoteNodeInfo.getConnectionName();
 
-        if (remoteNodeInfo.getHostName().equals("")) { // end case
-            getLocalDGM().put("topoDG", topoDG);
-            // returnしないとtopoDGが使えない.
-            return;
-        }
-
         cgm.createRemoteDGM(connectionName,
                     remoteNodeInfo.getHostName(),
                     remoteNodeInfo.getPort());
--- a/src/test/java/christie/paxos/PaxosTest.java	Sat Mar 09 14:03:25 2019 +0900
+++ b/src/test/java/christie/paxos/PaxosTest.java	Sat Mar 09 21:53:37 2019 +0900
@@ -1,10 +1,9 @@
 package christie.paxos;
 
 import christie.test.topology.paxos.CheckMyName;
+import christie.test.topology.paxos.StartPaxosNode;
 import christie.topology.manager.StartTopologyManager;
 import christie.topology.manager.TopologyManagerConfig;
-import christie.topology.node.StartTopologyNode;
-import christie.topology.node.TopologyNodeConfig;
 
 public class PaxosTest {
 
@@ -21,10 +20,10 @@
 
             String[] nodeArg = {"--managerPort", String.valueOf(managerPort),
                     "--managerHost", "localhost",
-                    "--localPort", String.valueOf(managerPort + i)};
+                    "--localPort", String.valueOf(managerPort + i),
+                    "--level", "debug"};
 
-            TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(nodeArg);
-            new StartTopologyNode(topologyNodeConfig, new CheckMyName());
+            StartPaxosNode.main(nodeArg);
 
         }
     }