forked from Qortal/qortal
Browse Source
HTML/JS in src/test/resources/proxy-key-example.html updated accordingly. Add handshake status to output of API call GET /peers Add/correct @ApiErrors annotations on some API calls. Add API call POST /admin/orphan (target height as body) to force blockchain orphaning for when node is wildly out of sync. Added support for above to BlockChain class. BlockGenerator now requires a minimum number of peers before it will generate any new blocks. See "minBlockchainPeers" in settings. Controller now requires a minimum number of peers before it will consider synchronizing. See "minBlockchainPeers" in settings. Old "minPeers" entry in settings.json no longer valid! Networking now allows both an outbound and inbound connection to a peer although will use the outbound connection in preference. Networking checks peer ID of inbound connections to detect, and resolve, peer ID clashes/theft.split-DB
catbref
5 years ago
19 changed files with 429 additions and 54 deletions
@ -0,0 +1,51 @@
|
||||
package org.qora.network.message; |
||||
|
||||
import java.io.ByteArrayOutputStream; |
||||
import java.io.IOException; |
||||
import java.io.UnsupportedEncodingException; |
||||
import java.nio.ByteBuffer; |
||||
|
||||
import org.qora.network.Network; |
||||
|
||||
public class PeerVerifyMessage extends Message { |
||||
|
||||
private byte[] verificationCode; |
||||
|
||||
public PeerVerifyMessage(byte[] verificationCode) { |
||||
this(-1, verificationCode); |
||||
} |
||||
|
||||
private PeerVerifyMessage(int id, byte[] verificationCode) { |
||||
super(id, MessageType.PEER_VERIFY); |
||||
|
||||
this.verificationCode = verificationCode; |
||||
} |
||||
|
||||
public byte[] getVerificationCode() { |
||||
return this.verificationCode; |
||||
} |
||||
|
||||
public static Message fromByteBuffer(int id, ByteBuffer bytes) throws UnsupportedEncodingException { |
||||
if (bytes.remaining() != Network.PEER_ID_LENGTH) |
||||
return null; |
||||
|
||||
byte[] verificationCode = new byte[Network.PEER_ID_LENGTH]; |
||||
bytes.get(verificationCode); |
||||
|
||||
return new PeerVerifyMessage(id, verificationCode); |
||||
} |
||||
|
||||
@Override |
||||
protected byte[] toData() { |
||||
try { |
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); |
||||
|
||||
bytes.write(this.verificationCode); |
||||
|
||||
return bytes.toByteArray(); |
||||
} catch (IOException e) { |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,64 @@
|
||||
package org.qora.network.message; |
||||
|
||||
import java.io.ByteArrayOutputStream; |
||||
import java.io.IOException; |
||||
import java.io.UnsupportedEncodingException; |
||||
import java.nio.ByteBuffer; |
||||
|
||||
import org.qora.network.Network; |
||||
|
||||
public class VerificationCodesMessage extends Message { |
||||
|
||||
private static final int TOTAL_LENGTH = Network.PEER_ID_LENGTH + Network.PEER_ID_LENGTH; |
||||
|
||||
private byte[] verificationCodeSent; |
||||
private byte[] verificationCodeExpected; |
||||
|
||||
public VerificationCodesMessage(byte[] verificationCodeSent, byte[] verificationCodeExpected) { |
||||
this(-1, verificationCodeSent, verificationCodeExpected); |
||||
} |
||||
|
||||
private VerificationCodesMessage(int id, byte[] verificationCodeSent, byte[] verificationCodeExpected) { |
||||
super(id, MessageType.VERIFICATION_CODES); |
||||
|
||||
this.verificationCodeSent = verificationCodeSent; |
||||
this.verificationCodeExpected = verificationCodeExpected; |
||||
} |
||||
|
||||
public byte[] getVerificationCodeSent() { |
||||
return this.verificationCodeSent; |
||||
} |
||||
|
||||
public byte[] getVerificationCodeExpected() { |
||||
return this.verificationCodeExpected; |
||||
} |
||||
|
||||
public static Message fromByteBuffer(int id, ByteBuffer bytes) throws UnsupportedEncodingException { |
||||
if (bytes.remaining() != TOTAL_LENGTH) |
||||
return null; |
||||
|
||||
byte[] verificationCodeSent = new byte[Network.PEER_ID_LENGTH]; |
||||
bytes.get(verificationCodeSent); |
||||
|
||||
byte[] verificationCodeExpected = new byte[Network.PEER_ID_LENGTH]; |
||||
bytes.get(verificationCodeExpected); |
||||
|
||||
return new VerificationCodesMessage(id, verificationCodeSent, verificationCodeExpected); |
||||
} |
||||
|
||||
@Override |
||||
protected byte[] toData() { |
||||
try { |
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); |
||||
|
||||
bytes.write(this.verificationCodeSent); |
||||
|
||||
bytes.write(this.verificationCodeExpected); |
||||
|
||||
return bytes.toByteArray(); |
||||
} catch (IOException e) { |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,17 @@
|
||||
package org.qora.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.qora.gui.SplashFrame; |
||||
|
||||
public class GuiTests { |
||||
|
||||
@Test |
||||
public void testSplashFrame() throws InterruptedException { |
||||
SplashFrame splashFrame = SplashFrame.getInstance(); |
||||
|
||||
Thread.sleep(2000L); |
||||
|
||||
splashFrame.dispose(); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue