From f777cbeca94bb9fdc1219bb4c862f154efc3ecd1 Mon Sep 17 00:00:00 2001
From: Ethan Buchman <ethan@coinculture.info>
Date: Thu, 25 Feb 2016 07:50:32 +0000
Subject: [PATCH] add network test

---
 net_test/README.md                            |  14 +++
 net_test/data/init.sh                         |  12 ++
 net_test/data/local/config.toml               |  11 ++
 net_test/data/local/genesis.json              | 113 ++++++++++++++++++
 net_test/data/local/priv_validator.json       |   1 +
 net_test/data/local/server_conf.toml          |  26 ++++
 net_test/data/local_data/config.toml          |  11 ++
 net_test/data/local_data/genesis.json         | 113 ++++++++++++++++++
 net_test/data/local_data/local/config.toml    |  11 ++
 net_test/data/local_data/local/genesis.json   | 113 ++++++++++++++++++
 .../data/local_data/local/priv_validator.json |   1 +
 .../data/local_data/local/server_conf.toml    |  26 ++++
 net_test/data/local_data/priv_validator.json  |   1 +
 net_test/data/local_data/server_conf.toml     |  26 ++++
 net_test/data/net_test_0/config.toml          |  11 ++
 net_test/data/net_test_0/genesis.json         | 113 ++++++++++++++++++
 net_test/data/net_test_0/init.sh              |  12 ++
 net_test/data/net_test_0/priv_validator.json  |   1 +
 net_test/data/net_test_0/server_conf.toml     |  26 ++++
 net_test/data/net_test_1/config.toml          |  11 ++
 net_test/data/net_test_1/genesis.json         | 113 ++++++++++++++++++
 net_test/data/net_test_1/init.sh              |  12 ++
 net_test/data/net_test_1/priv_validator.json  |   1 +
 net_test/data/net_test_2/config.toml          |  11 ++
 net_test/data/net_test_2/genesis.json         | 113 ++++++++++++++++++
 net_test/data/net_test_2/init.sh              |  12 ++
 net_test/data/net_test_2/priv_validator.json  |   1 +
 net_test/data/net_test_3/config.toml          |  11 ++
 net_test/data/net_test_3/genesis.json         | 113 ++++++++++++++++++
 net_test/data/net_test_3/init.sh              |  12 ++
 net_test/data/net_test_3/priv_validator.json  |   1 +
 net_test/dev/Dockerfile                       |  16 +++
 net_test/dev/data.sh                          |  32 +++++
 net_test/dev/local.sh                         |  13 ++
 net_test/dev/rm.sh                            |  14 +++
 net_test/dev/run.sh                           |  17 +++
 net_test/dev/test.sh                          |  10 ++
 net_test/setup.sh                             |  29 +++++
 net_test/test.sh                              |  39 ++++++
 39 files changed, 1223 insertions(+)
 create mode 100644 net_test/README.md
 create mode 100755 net_test/data/init.sh
 create mode 100644 net_test/data/local/config.toml
 create mode 100644 net_test/data/local/genesis.json
 create mode 100644 net_test/data/local/priv_validator.json
 create mode 100644 net_test/data/local/server_conf.toml
 create mode 100644 net_test/data/local_data/config.toml
 create mode 100644 net_test/data/local_data/genesis.json
 create mode 100644 net_test/data/local_data/local/config.toml
 create mode 100644 net_test/data/local_data/local/genesis.json
 create mode 100644 net_test/data/local_data/local/priv_validator.json
 create mode 100644 net_test/data/local_data/local/server_conf.toml
 create mode 100644 net_test/data/local_data/priv_validator.json
 create mode 100644 net_test/data/local_data/server_conf.toml
 create mode 100644 net_test/data/net_test_0/config.toml
 create mode 100644 net_test/data/net_test_0/genesis.json
 create mode 100755 net_test/data/net_test_0/init.sh
 create mode 100644 net_test/data/net_test_0/priv_validator.json
 create mode 100644 net_test/data/net_test_0/server_conf.toml
 create mode 100644 net_test/data/net_test_1/config.toml
 create mode 100644 net_test/data/net_test_1/genesis.json
 create mode 100755 net_test/data/net_test_1/init.sh
 create mode 100644 net_test/data/net_test_1/priv_validator.json
 create mode 100644 net_test/data/net_test_2/config.toml
 create mode 100644 net_test/data/net_test_2/genesis.json
 create mode 100755 net_test/data/net_test_2/init.sh
 create mode 100644 net_test/data/net_test_2/priv_validator.json
 create mode 100644 net_test/data/net_test_3/config.toml
 create mode 100644 net_test/data/net_test_3/genesis.json
 create mode 100755 net_test/data/net_test_3/init.sh
 create mode 100644 net_test/data/net_test_3/priv_validator.json
 create mode 100644 net_test/dev/Dockerfile
 create mode 100644 net_test/dev/data.sh
 create mode 100644 net_test/dev/local.sh
 create mode 100644 net_test/dev/rm.sh
 create mode 100644 net_test/dev/run.sh
 create mode 100644 net_test/dev/test.sh
 create mode 100644 net_test/setup.sh
 create mode 100644 net_test/test.sh

diff --git a/net_test/README.md b/net_test/README.md
new file mode 100644
index 00000000..68d42a5a
--- /dev/null
+++ b/net_test/README.md
@@ -0,0 +1,14 @@
+# Network Integration Test
+
+Test transaction relaying with nonce-based txs
+
+Dependencies: eris-cli, mint-client
+
+Expects docker-machines to be already deployed as mach1, mach2, mach3, mach4.
+Machine name (`mach`) can be changed at top of `setup.sh`
+
+Start the network nodes and the local proxy: `./setup.sh`
+
+Run the test: `./test.sh`
+
+Use `./dev/rm.sh` to wipe the remote containers, and `eris clean` to wipe the local ones.
diff --git a/net_test/data/init.sh b/net_test/data/init.sh
new file mode 100755
index 00000000..28c329fe
--- /dev/null
+++ b/net_test/data/init.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+# this script installs and runs erisdb, because we don't have patience for docker
+
+BRANCH="fixes"
+
+go get -d github.com/eris-ltd/eris-db
+cd $GOPATH/src/github.com/eris-ltd/eris-db
+git fetch origin $BRANCH
+git checkout $BRANCH
+go install ./cmd/erisdb
+
+erisdb $TMROOT # should be exposed by docker file
diff --git a/net_test/data/local/config.toml b/net_test/data/local/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/local/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/local/genesis.json b/net_test/data/local/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/local/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/local/priv_validator.json b/net_test/data/local/priv_validator.json
new file mode 100644
index 00000000..49862c0a
--- /dev/null
+++ b/net_test/data/local/priv_validator.json
@@ -0,0 +1 @@
+{"address":"F8C21B6934E34C25067085AAB313BBFD714393EE","pub_key":[1,"0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"],"last_height":0,"last_round":0,"last_step":0,"priv_key":[1,"16EF1EE7895803D7BEF04B6BEE1E6B60C995B868CDA632C96B1846C12FE9A79B0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"]}
\ No newline at end of file
diff --git a/net_test/data/local/server_conf.toml b/net_test/data/local/server_conf.toml
new file mode 100644
index 00000000..e1fa0645
--- /dev/null
+++ b/net_test/data/local/server_conf.toml
@@ -0,0 +1,26 @@
+[bind]
+address=""
+port=1337
+[TLS]
+tls=false
+cert_path=""
+key_path=""
+[CORS]
+enable=false
+allow_origins=[]
+allow_credentials=false
+allow_methods=[]
+allow_headers=[]
+expose_headers=[]
+max_age=0
+[HTTP]
+json_rpc_endpoint="/rpc"
+[web_socket]
+websocket_endpoint="/socketrpc"
+max_websocket_sessions=50
+read_buffer_size=4096
+write_buffer_size=4096
+[logging]
+console_log_level="info"
+file_log_level="warn"
+log_file=""
diff --git a/net_test/data/local_data/config.toml b/net_test/data/local_data/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/local_data/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/local_data/genesis.json b/net_test/data/local_data/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/local_data/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/local_data/local/config.toml b/net_test/data/local_data/local/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/local_data/local/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/local_data/local/genesis.json b/net_test/data/local_data/local/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/local_data/local/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/local_data/local/priv_validator.json b/net_test/data/local_data/local/priv_validator.json
new file mode 100644
index 00000000..49862c0a
--- /dev/null
+++ b/net_test/data/local_data/local/priv_validator.json
@@ -0,0 +1 @@
+{"address":"F8C21B6934E34C25067085AAB313BBFD714393EE","pub_key":[1,"0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"],"last_height":0,"last_round":0,"last_step":0,"priv_key":[1,"16EF1EE7895803D7BEF04B6BEE1E6B60C995B868CDA632C96B1846C12FE9A79B0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"]}
\ No newline at end of file
diff --git a/net_test/data/local_data/local/server_conf.toml b/net_test/data/local_data/local/server_conf.toml
new file mode 100644
index 00000000..e1fa0645
--- /dev/null
+++ b/net_test/data/local_data/local/server_conf.toml
@@ -0,0 +1,26 @@
+[bind]
+address=""
+port=1337
+[TLS]
+tls=false
+cert_path=""
+key_path=""
+[CORS]
+enable=false
+allow_origins=[]
+allow_credentials=false
+allow_methods=[]
+allow_headers=[]
+expose_headers=[]
+max_age=0
+[HTTP]
+json_rpc_endpoint="/rpc"
+[web_socket]
+websocket_endpoint="/socketrpc"
+max_websocket_sessions=50
+read_buffer_size=4096
+write_buffer_size=4096
+[logging]
+console_log_level="info"
+file_log_level="warn"
+log_file=""
diff --git a/net_test/data/local_data/priv_validator.json b/net_test/data/local_data/priv_validator.json
new file mode 100644
index 00000000..49862c0a
--- /dev/null
+++ b/net_test/data/local_data/priv_validator.json
@@ -0,0 +1 @@
+{"address":"F8C21B6934E34C25067085AAB313BBFD714393EE","pub_key":[1,"0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"],"last_height":0,"last_round":0,"last_step":0,"priv_key":[1,"16EF1EE7895803D7BEF04B6BEE1E6B60C995B868CDA632C96B1846C12FE9A79B0E89C57AAE3E02476A09A1498AE219A232341CF006238581EB5BB22B10CC2364"]}
\ No newline at end of file
diff --git a/net_test/data/local_data/server_conf.toml b/net_test/data/local_data/server_conf.toml
new file mode 100644
index 00000000..e1fa0645
--- /dev/null
+++ b/net_test/data/local_data/server_conf.toml
@@ -0,0 +1,26 @@
+[bind]
+address=""
+port=1337
+[TLS]
+tls=false
+cert_path=""
+key_path=""
+[CORS]
+enable=false
+allow_origins=[]
+allow_credentials=false
+allow_methods=[]
+allow_headers=[]
+expose_headers=[]
+max_age=0
+[HTTP]
+json_rpc_endpoint="/rpc"
+[web_socket]
+websocket_endpoint="/socketrpc"
+max_websocket_sessions=50
+read_buffer_size=4096
+write_buffer_size=4096
+[logging]
+console_log_level="info"
+file_log_level="warn"
+log_file=""
diff --git a/net_test/data/net_test_0/config.toml b/net_test/data/net_test_0/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/net_test_0/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/net_test_0/genesis.json b/net_test/data/net_test_0/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/net_test_0/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/net_test_0/init.sh b/net_test/data/net_test_0/init.sh
new file mode 100755
index 00000000..28c329fe
--- /dev/null
+++ b/net_test/data/net_test_0/init.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+# this script installs and runs erisdb, because we don't have patience for docker
+
+BRANCH="fixes"
+
+go get -d github.com/eris-ltd/eris-db
+cd $GOPATH/src/github.com/eris-ltd/eris-db
+git fetch origin $BRANCH
+git checkout $BRANCH
+go install ./cmd/erisdb
+
+erisdb $TMROOT # should be exposed by docker file
diff --git a/net_test/data/net_test_0/priv_validator.json b/net_test/data/net_test_0/priv_validator.json
new file mode 100644
index 00000000..e87e5441
--- /dev/null
+++ b/net_test/data/net_test_0/priv_validator.json
@@ -0,0 +1 @@
+{"address":"0A73F65F86271552C4858091D3DADFE3335B9272","pub_key":[1,"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"],"last_height":0,"last_round":0,"last_step":0,"priv_key":[1,"327E2C108827404E20686BED8A3110D8EC54B3D725430C2B0D0D461699EB8FFC053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"]}
\ No newline at end of file
diff --git a/net_test/data/net_test_0/server_conf.toml b/net_test/data/net_test_0/server_conf.toml
new file mode 100644
index 00000000..e1fa0645
--- /dev/null
+++ b/net_test/data/net_test_0/server_conf.toml
@@ -0,0 +1,26 @@
+[bind]
+address=""
+port=1337
+[TLS]
+tls=false
+cert_path=""
+key_path=""
+[CORS]
+enable=false
+allow_origins=[]
+allow_credentials=false
+allow_methods=[]
+allow_headers=[]
+expose_headers=[]
+max_age=0
+[HTTP]
+json_rpc_endpoint="/rpc"
+[web_socket]
+websocket_endpoint="/socketrpc"
+max_websocket_sessions=50
+read_buffer_size=4096
+write_buffer_size=4096
+[logging]
+console_log_level="info"
+file_log_level="warn"
+log_file=""
diff --git a/net_test/data/net_test_1/config.toml b/net_test/data/net_test_1/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/net_test_1/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/net_test_1/genesis.json b/net_test/data/net_test_1/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/net_test_1/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/net_test_1/init.sh b/net_test/data/net_test_1/init.sh
new file mode 100755
index 00000000..28c329fe
--- /dev/null
+++ b/net_test/data/net_test_1/init.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+# this script installs and runs erisdb, because we don't have patience for docker
+
+BRANCH="fixes"
+
+go get -d github.com/eris-ltd/eris-db
+cd $GOPATH/src/github.com/eris-ltd/eris-db
+git fetch origin $BRANCH
+git checkout $BRANCH
+go install ./cmd/erisdb
+
+erisdb $TMROOT # should be exposed by docker file
diff --git a/net_test/data/net_test_1/priv_validator.json b/net_test/data/net_test_1/priv_validator.json
new file mode 100644
index 00000000..537f39f7
--- /dev/null
+++ b/net_test/data/net_test_1/priv_validator.json
@@ -0,0 +1 @@
+{"address":"3BF0230BFE5CFB2C4609EE6893137A08A0353FCF","pub_key":[1,"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"],"priv_key":[1,"B5811A4DB066E77EB3F87DD28ADC9A55DC4816DA648898B75BBCCEC4652D207B5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"],"last_height":0,"last_round":0,"last_step":0}
\ No newline at end of file
diff --git a/net_test/data/net_test_2/config.toml b/net_test/data/net_test_2/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/net_test_2/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/net_test_2/genesis.json b/net_test/data/net_test_2/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/net_test_2/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/net_test_2/init.sh b/net_test/data/net_test_2/init.sh
new file mode 100755
index 00000000..28c329fe
--- /dev/null
+++ b/net_test/data/net_test_2/init.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+# this script installs and runs erisdb, because we don't have patience for docker
+
+BRANCH="fixes"
+
+go get -d github.com/eris-ltd/eris-db
+cd $GOPATH/src/github.com/eris-ltd/eris-db
+git fetch origin $BRANCH
+git checkout $BRANCH
+go install ./cmd/erisdb
+
+erisdb $TMROOT # should be exposed by docker file
diff --git a/net_test/data/net_test_2/priv_validator.json b/net_test/data/net_test_2/priv_validator.json
new file mode 100644
index 00000000..7fee99d4
--- /dev/null
+++ b/net_test/data/net_test_2/priv_validator.json
@@ -0,0 +1 @@
+{"address":"6C76BECAE4692F0E44DD780C91CDF2188658B871","pub_key":[1,"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"],"priv_key":[1,"35D9F61882E5E71DBE8E241EE39C0BEE5AFBEB85FF1D2D1D331D4849E4C802AA7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"],"last_height":0,"last_round":0,"last_step":0}
\ No newline at end of file
diff --git a/net_test/data/net_test_3/config.toml b/net_test/data/net_test_3/config.toml
new file mode 100644
index 00000000..1a55f510
--- /dev/null
+++ b/net_test/data/net_test_3/config.toml
@@ -0,0 +1,11 @@
+# This is a TOML config file.
+# For more information, see https://github.com/toml-lang/toml
+
+moniker = "golden_goose"
+skip_upnp = true
+node_laddr = "0.0.0.0:46656"
+seeds = "104.236.45.149:46656"
+fast_sync = false
+db_backend = "leveldb"
+log_level = "debug"
+rpc_laddr = "0.0.0.0:46657"
diff --git a/net_test/data/net_test_3/genesis.json b/net_test/data/net_test_3/genesis.json
new file mode 100644
index 00000000..2beb2e0e
--- /dev/null
+++ b/net_test/data/net_test_3/genesis.json
@@ -0,0 +1,113 @@
+{
+	"genesis_time": "2016-02-25T02:52:00.489Z",
+	"chain_id": "net_test",
+	"params": null,
+	"accounts": [
+		{
+			"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		},
+		{
+			"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+			"amount": 2251799813685248,
+			"name": "",
+			"permissions": {
+				"base": {
+					"perms": 2302,
+					"set": 2302
+				},
+				"roles": []
+			}
+		}
+	],
+	"validators": [
+		{
+			"pub_key": [
+				1,
+				"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"5A195121671DD5D06E57A53FE4165F83E3779C270837A06CA69A9142C893F3B0"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "3BF0230BFE5CFB2C4609EE6893137A08A0353FCF",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"7571290A33CFAE246136818BF20BE9719FEDA162D2588F8B54AC2ED27F8FFEC7"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "6C76BECAE4692F0E44DD780C91CDF2188658B871",
+					"amount": 1000
+				}
+			]
+		},
+		{
+			"pub_key": [
+				1,
+				"053FFACC3B1F8AD855538E7B9F8E6EE8661C8170C6E159706654E5BF7F42FEFA"
+			],
+			"amount": 1000,
+			"name": "",
+			"unbond_to": [
+				{
+					"address": "0A73F65F86271552C4858091D3DADFE3335B9272",
+					"amount": 1000
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/net_test/data/net_test_3/init.sh b/net_test/data/net_test_3/init.sh
new file mode 100755
index 00000000..28c329fe
--- /dev/null
+++ b/net_test/data/net_test_3/init.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+# this script installs and runs erisdb, because we don't have patience for docker
+
+BRANCH="fixes"
+
+go get -d github.com/eris-ltd/eris-db
+cd $GOPATH/src/github.com/eris-ltd/eris-db
+git fetch origin $BRANCH
+git checkout $BRANCH
+go install ./cmd/erisdb
+
+erisdb $TMROOT # should be exposed by docker file
diff --git a/net_test/data/net_test_3/priv_validator.json b/net_test/data/net_test_3/priv_validator.json
new file mode 100644
index 00000000..620c8f80
--- /dev/null
+++ b/net_test/data/net_test_3/priv_validator.json
@@ -0,0 +1 @@
+{"address":"BC7721F9DBBDDEFE3384FABB7F0EBDE7A599BCF6","pub_key":[1,"520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"],"priv_key":[1,"640AA03CB926DAF8B4D54FCAA289976AD724AB1A95A456E65B1EA8B465FC4BAB520FD1AF439F68F977E5F8AEA9F6BF6FB041CD7E3640095C5838F4CFC9CD5599"],"last_height":0,"last_round":0,"last_step":0}
\ No newline at end of file
diff --git a/net_test/dev/Dockerfile b/net_test/dev/Dockerfile
new file mode 100644
index 00000000..0973d7e7
--- /dev/null
+++ b/net_test/dev/Dockerfile
@@ -0,0 +1,16 @@
+# Pull base image.
+# NOTE: to use this Dockerfile, mount the chain data, including an init.sh, to /home/eris/data 
+FROM quay.io/eris/base
+
+
+ENV TMROOT /home/$USER/data
+WORKDIR $TMROOT
+RUN chown -R $USER:$USER $TMROOT
+
+# ports: 1337:eris-db API; 46656:mint-peer; 46657:mint-rpc
+EXPOSE 1337
+EXPOSE 46656
+EXPOSE 46657
+
+# Run tendermint
+CMD ["./init.sh"] # 
diff --git a/net_test/dev/data.sh b/net_test/dev/data.sh
new file mode 100644
index 00000000..e145e900
--- /dev/null
+++ b/net_test/dev/data.sh
@@ -0,0 +1,32 @@
+#! /bin/bash
+
+
+MACH="mempool"
+NAME="net_test"
+N=4
+
+SEED=$(docker-machine ip ${MACH}1):46656
+echo "seed node:" $SEED
+
+# copy data to remotes
+for i in `seq 0 $((N-1))`;
+do
+
+	dataI=$i
+	machI=$((i+1))
+
+	# lay the config with the seed for this session
+	mintconfig --skip-upnp --seeds=$SEED > ./data/${NAME}_$dataI/config.toml
+
+	# copy the startup bash script into the data ...
+	cp ./data/init.sh ./data/${NAME}_$dataI/init.sh
+
+	# clear and copy the node data
+	docker-machine ssh ${MACH}$machI rm -rf $NAME
+	docker-machine scp -r ./data/${NAME}_$dataI ${MACH}$machI:$NAME
+
+	# docker-machine ssh ${MACH}$machI ls $NAME
+	echo "###############"
+done   
+
+
diff --git a/net_test/dev/local.sh b/net_test/dev/local.sh
new file mode 100644
index 00000000..c93bb5dd
--- /dev/null
+++ b/net_test/dev/local.sh
@@ -0,0 +1,13 @@
+#! /bin/bash
+set -e
+
+MACH="mempool"
+NAME="net_test"
+
+TMROOT=data/local
+
+# run a local erisdb node
+erisdb $TMROOT  &> erisdb.log &
+
+# set up eris-keys
+# eris-keys server &
diff --git a/net_test/dev/rm.sh b/net_test/dev/rm.sh
new file mode 100644
index 00000000..d0847b80
--- /dev/null
+++ b/net_test/dev/rm.sh
@@ -0,0 +1,14 @@
+#! /bin/bash
+set -e
+
+MACH="mempool"
+NAME="net_test"
+N=4
+
+# run the erisdb on each node
+for i in `seq 1 $N`;
+do
+	docker-machine ssh ${MACH}$i docker rm -vf \$\(docker ps -aq\)
+	echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+	echo " "
+done   
diff --git a/net_test/dev/run.sh b/net_test/dev/run.sh
new file mode 100644
index 00000000..5ed9e9ed
--- /dev/null
+++ b/net_test/dev/run.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+set -e
+
+MACH="mempool"
+NAME="net_test"
+N=4
+
+# run the erisdb on each node
+for i in `seq 1 $N`;
+do
+	dataI=$((i-1))
+	machI=$i
+
+	docker-machine ssh ${MACH}$machI docker run --name erisdb -d -p 46656-46657:46656-46657 -p 1337:1337 -v \$\(pwd\)/net_test:/home/eris/data quay.io/eris/erisdb-dev &
+	echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+	echo " "
+done   
diff --git a/net_test/dev/test.sh b/net_test/dev/test.sh
new file mode 100644
index 00000000..f5324e87
--- /dev/null
+++ b/net_test/dev/test.sh
@@ -0,0 +1,10 @@
+#! /bin/bash
+set -e
+
+NAME="net_test"
+
+ADDR=`mintkey eris data/${NAME}_0/priv_validator.json`
+MINTX_PUBKEY=""
+echo $ADDR
+
+mintx send --to=1A73F65F86271552C4858091D3DADFE3335B9273 --addr=$ADDR --amt=1 --sign --broadcast --log=6 --chainID=$NAME
diff --git a/net_test/setup.sh b/net_test/setup.sh
new file mode 100644
index 00000000..165883a5
--- /dev/null
+++ b/net_test/setup.sh
@@ -0,0 +1,29 @@
+#! /bin/bash
+
+MACH="mempool"
+NAME="net_test"
+N=4
+
+SEED=$(docker-machine ip ${MACH}1):46656
+echo "seed node:" $SEED
+
+# run the erisdb on each node
+for i in `seq 1 $N`;
+do
+	dataI=$((i-1))
+	machI=$i
+
+	# lay the config with the seed for this session
+	mintconfig --skip-upnp --seeds=$SEED > ./data/${NAME}_$dataI/config.toml
+
+	eris --machine ${MACH}$machI chains new --dir $(pwd)/data/${NAME}_$dataI $NAME
+
+	echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+	echo " "
+done   
+
+
+# start the local proxy
+mintconfig --skip-upnp --seeds=$SEED > ./data/local/config.toml
+cp -r ./data/local ./data/local_data # so we don't contaminate the real dir
+eris chains new --dir $(pwd)/data/local_data $NAME
diff --git a/net_test/test.sh b/net_test/test.sh
new file mode 100644
index 00000000..553e62b2
--- /dev/null
+++ b/net_test/test.sh
@@ -0,0 +1,39 @@
+#! /bin/bash
+set -e
+
+NAME="net_test"
+
+ADDR=`mintkey eris data/${NAME}_0/priv_validator.json`
+MINTX_PUBKEY=""
+echo $ADDR
+
+TO=1A73F65F86271552C4858091D3DADFE3335B9273 
+
+set +e
+START_BALANCE=`mintinfo accounts $TO`
+if [[ "$?" == 1 ]]; then
+	START_BALANCE=0
+
+else
+	START_BALANCE=`echo $START_BALANCE | jq .balance`
+fi
+set -e
+
+N=10
+for i in `seq 1 $N`; do
+	mintx send --to=$TO --addr=$ADDR --amt=1 --sign --broadcast --chainID=$NAME
+done
+mintx send --to=$TO --addr=$ADDR --amt=1 --sign --broadcast --chainID=$NAME --log=6 --wait
+
+END_BALANCE=`mintinfo accounts $TO | jq .balance`
+
+DIFF_BALANCE=$((${END_BALANCE}-${START_BALANCE}))
+
+if [[ "$DIFF_BALANCE" != $(($N+1)) ]]; then
+	echo "Failed! Expected $((N+1)), got $DIFF_BALANCE"
+	exit 1
+fi
+
+echo "PASS"
+
+
-- 
GitLab