public static void main(String[] args) throws RemoteException {
        // rmi registration
        LocateRegistry.createRegistry(12345);

        // create 6 nodes at first
        ChordNodeLauncher root = new ChordNodeLauncher(CHORD + '0', null);
        try {
            root = new ChordNodeLauncher(CHORD + '1', root.getNode());
            root = new ChordNodeLauncher(CHORD + '2', root.getNode());
            root = new ChordNodeLauncher(CHORD + '3', root.getNode());
            root = new ChordNodeLauncher(CHORD + '4', root.getNode());
            root = new ChordNodeLauncher(CHORD + '5', root.getNode());
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(-1);
        }

        // invoke GUI frame
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    ChordDHTDashboard frame = new ChordDHTDashboard();
                    frame.setVisible(true);

                    frame.updateNodeList();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }