Adjust system to work with list of listeners + Upgrade Genesis + Upgrade to eth:52

This commit is contained in:
Roman Mandeleil 2015-01-29 15:05:05 +02:00
parent 8959f14c44
commit f6233bba72
8 changed files with 32 additions and 125 deletions

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="2" />
<option name="IMPORT_LAYOUT_TABLE">
<value>
<emptyLine />
<package name="test.ethereum" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.ethereum" withSubpackages="true" static="false" />
<emptyLine />
<package name="com.cedarsoftware" withSubpackages="true" static="false" />
<emptyLine />
<package name="com.fasterxml" withSubpackages="true" static="false" />
<emptyLine />
<package name="com.google" withSubpackages="true" static="false" />
<emptyLine />
<package name="com.maxmind" withSubpackages="true" static="false" />
<emptyLine />
<package name="io.netty" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.antlr" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.apache" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.codehaus" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.fife" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.hibernate" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.iq80" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.json" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.junit" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.slf4j" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.spongycastle" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.springframework" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.w3c" withSubpackages="true" static="false" />
<emptyLine />
<package name="org.xml" withSubpackages="true" static="false" />
<emptyLine />
<package name="java" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.awt" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.io" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.lang" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.math" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.net" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.nio" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.security" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.sql" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.text" withSubpackages="true" static="false" />
<emptyLine />
<package name="java.util" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax.annotation" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax.persistence" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax.swing" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax.xml" withSubpackages="true" static="false" />
<emptyLine />
<package name="sun.misc" withSubpackages="true" static="false" />
<emptyLine />
<package name="" withSubpackages="true" static="true" />
</value>
</option>
<option name="ENABLE_JAVADOC_FORMATTING" value="false" />
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</component>
</project>

View File

@ -31,16 +31,17 @@ public class Genesis extends Block {
public final static BigInteger PREMINE_AMOUNT = BigInteger.valueOf(2).pow(200);
private static String[] premine = new String[]{
"51ba59315b3a95761d0863b05ccc7a7f54703d99",
"e6716f9544a56c530d868e4bfbacb172315bdead", // # (J)
"b9c015918bdaba24b4ff057a92a3873d6eb201be", // # (V)
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4", // # (A)
"2ef47100e0787b915105fd5e3f4ff6752079d5cb", // # (M)
"cd2a3d9f938e13cd947ec05abc7fe734df8dd826", // # (R)
"6c386a4b26f73c802f34673f7248bb118f97424a", // # (HH)
"e4157b34ea9615cfbde6b4fda419828124b70c78", // # (CH)
"dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6",
"e4157b34ea9615cfbde6b4fda419828124b70c78", // # (CH)
"b9c015918bdaba24b4ff057a92a3873d6eb201be", // # (V)
"6c386a4b26f73c802f34673f7248bb118f97424a", // # (HH)
"cd2a3d9f938e13cd947ec05abc7fe734df8dd826", // # (R)
"2ef47100e0787b915105fd5e3f4ff6752079d5cb", // # (M)
"e6716f9544a56c530d868e4bfbacb172315bdead", // # (J)
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4" // # (A)
};
private static byte[] zeroHash256 = new byte[32];
private static byte[] zeroHash160 = new byte[20];
private static byte[] zeroHash512 = new byte[64];

View File

@ -7,6 +7,8 @@ import org.ethereum.net.p2p.HelloMessage;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
@ -14,69 +16,68 @@ import java.util.Set;
* @since 12.11.2014
*/
@Component(value = "EthereumListener")
public class EthereumListenerWrapper implements EthereumListener {
public class CompositeEthereumListener implements EthereumListener {
EthereumListener listener;
List<EthereumListener> listeners = new ArrayList<>();
@Override
public void trace(String output) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.trace(output);
}
@Override
public void onBlock(Block block) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onBlock(block);
}
@Override
public void onRecvMessage(Message message) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onRecvMessage(message);
}
@Override
public void onSendMessage(Message message) {
if (listener != null)
listener.onSendMessage(message);
for (EthereumListener listener : listeners)
listener.onSendMessage(message);
}
@Override
public void onPeerDisconnect(String host, long port) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onPeerDisconnect(host, port);
}
@Override
public void onPendingTransactionsReceived(Set<Transaction> transactions) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onPendingTransactionsReceived(transactions);
}
@Override
public void onSyncDone() {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onSyncDone();
}
@Override
public void onNoConnections() {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onNoConnections();
}
@Override
public void onHandShakePeer(HelloMessage helloMessage) {
if (listener != null)
for (EthereumListener listener : listeners)
listener.onHandShakePeer(helloMessage);
}
public void addListener(EthereumListener listener) {
if (listener != null)
this.listener = listener;
listeners.add(listener);
}
}

View File

@ -10,7 +10,7 @@ import org.ethereum.db.BlockStore;
import org.ethereum.facade.Blockchain;
import org.ethereum.facade.Repository;
import org.ethereum.listener.EthereumListener;
import org.ethereum.listener.EthereumListenerWrapper;
import org.ethereum.listener.CompositeEthereumListener;
import org.ethereum.net.client.PeerClient;
import org.ethereum.net.peerdiscovery.PeerDiscovery;
import org.ethereum.net.server.ChannelManager;
@ -88,7 +88,7 @@ public class WorldManager {
public void addListener(EthereumListener listener) {
logger.info("Ethereum listener added");
((EthereumListenerWrapper) this.listener).addListener(listener);
((CompositeEthereumListener) this.listener).addListener(listener);
}
public void startPeerDiscovery() {

View File

@ -54,7 +54,7 @@ import static org.ethereum.net.message.StaticMessages.GET_TRANSACTIONS_MESSAGE;
@Scope("prototype")
public class EthHandler extends SimpleChannelInboundHandler<EthMessage> {
public final static byte VERSION = 51;
public final static byte VERSION = 52;
public final static byte NETWORK_ID = 0x0;
private final static Logger logger = LoggerFactory.getLogger("net");

View File

@ -61,8 +61,8 @@ public class BlockTest {
// https://ethereum.etherpad.mozilla.org/12
private String PoC7_GENESIS_HEX_RLP_ENCODED = "f9012ef90129a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c67c70f5d7d3049337d1dcc0503a249881120019a8e7322774dbfe57b463718ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080830f4240808080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829c0c0";
private String PoC7_GENESIS_HEX_HASH = "779b1b620b03c0fb24963e183d5e88e3dbe4484e3f6e2aa05942e3be7b48e179";
private String PoC7_GENESIS_HEX_RLP_ENCODED = "f9012ef90129a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0156df8ef53c723b40f97aff55dd785489cae8b457495916147687746bd5ee077a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080830f4240808080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829c0c0";
private String PoC7_GENESIS_HEX_HASH = "c9cb614fddd89b3bc6e2f0ed1f8e58e8a0d826612a607a6151be6f39c991a941";
String block_2 = "f8b5f8b1a0cf4b25b08b39350304fe12a16e4216c01a426f8f3dbf0d392b5b45"
+ "8ffb6a399da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a1"

View File

@ -22,7 +22,7 @@ import static org.junit.Assert.assertEquals;
public class StateTest {
private static final String GENESIS_STATE_ROOT = "c67c70f5d7d3049337d1dcc0503a249881120019a8e7322774dbfe57b463718c";
private static final String GENESIS_STATE_ROOT = "156df8ef53c723b40f97aff55dd785489cae8b457495916147687746bd5ee077";
private static final Logger logger = LoggerFactory.getLogger("test");
@ -45,7 +45,7 @@ public class StateTest {
// 4) calc the root
Trie trie = generateGenesisState();
String expected = "6ae5f47b0cc54ca33b4a46537f6cf6673f9138e876f3ac5a33dde173efe28236";
String expected = "aa5dd963f3a1582a0ba0226ad03a076e1e723e87d1a9c28222108ace58a96c97";
// Get and update sender in world state
byte[] cowAddress = Hex.decode("cd2a3d9f938e13cd947ec05abc7fe734df8dd826");

View File

@ -110,6 +110,7 @@ public class GitHubStateTest {
GitHubJSONTestSuite.runGitHubJsonStateTest(json, excluded);
}
@Ignore
@Test // todo: fix: excluded test
public void stTransactionTest() throws ParseException {