Package org.ethereum.net.p2p

Examples of org.ethereum.net.p2p.DisconnectMessage


     */
    public void processStatus(StatusMessage msg, ChannelHandlerContext ctx) throws InterruptedException {

        this.handshakeStatusMessage = msg;
        if (peerDiscoveryMode) {
            msgQueue.sendMessage(new DisconnectMessage(ReasonCode.REQUESTED));
            killTimers();
            ctx.close().sync();
            ctx.disconnect().sync();
            return;
        }

        if (!Arrays.equals(msg.getGenesisHash(), Blockchain.GENESIS_HASH)
                || msg.getProtocolVersion() != EthHandler.VERSION) {
            logger.info("Removing EthHandler for {} due to protocol incompatibility", ctx.channel().remoteAddress());
//      msgQueue.sendMessage(new DisconnectMessage(ReasonCode.INCOMPATIBLE_NETWORK));
            ctx.pipeline().remove(this); // Peer is not compatible for the 'eth' sub-protocol
        } else if (msg.getNetworkId() != EthHandler.NETWORK_ID)
            msgQueue.sendMessage(new DisconnectMessage(ReasonCode.INCOMPATIBLE_NETWORK));
        else {
            BlockQueue chainQueue = blockchain.getQueue();
            BigInteger peerTotalDifficulty = new BigInteger(1, msg.getTotalDifficulty());
            BigInteger highestKnownTotalDifficulty = blockchain.getTotalDifficulty();
            if ( highestKnownTotalDifficulty == null ||
View Full Code Here


    }

    @Test /* DisconnectMessage 2 - from constructor */
    public void test_3() {
     
        DisconnectMessage disconnectMessage = new DisconnectMessage(ReasonCode.INCOMPATIBLE_NETWORK);
        System.out.println(disconnectMessage);

        String expected = "c20107";
        assertEquals(expected, Hex.toHexString(disconnectMessage.getEncoded()));
       
        assertEquals(ReasonCode.INCOMPATIBLE_NETWORK, disconnectMessage.getReason());
    }
View Full Code Here

    public void test_1() {

        String disconnectMessageRaw = "C20100";
        byte[] payload = Hex.decode(disconnectMessageRaw);

        DisconnectMessage disconnectMessage = new DisconnectMessage(payload);
        System.out.println(disconnectMessage);

        assertEquals(disconnectMessage.getReason(), ReasonCode.REQUESTED);
    }
View Full Code Here

    public void test_2() {

        String disconnectMessageRaw = "C20101";
        byte[] payload = Hex.decode(disconnectMessageRaw);

        DisconnectMessage disconnectMessage = new DisconnectMessage(payload);
        System.out.println(disconnectMessage);

        assertEquals(disconnectMessage.getReason(), ReasonCode.TCP_ERROR);
    }
View Full Code Here

TOP

Related Classes of org.ethereum.net.p2p.DisconnectMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.