diff --git a/License.md b/License.md
index d0381d6..b9b9d2a 100644
--- a/License.md
+++ b/License.md
@@ -173,4 +173,4 @@ Apache License
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/README.md b/README.md
index c4983c5..f69b61d 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-
+
@@ -22,23 +22,23 @@ LatamLink is led by:
# LatamLink Testnet Node Installation
-EOSIO version tag: `v2.0.4`
+EOSIO version tag: `v2.0.9`
-Chain ID: `2c1f36d2e3774cba3e47804b6463c207544ac24183194e0b96ffad31e8f4acd5`
+Chain ID: `5821525c6588037e2b066b992fcac34909a5b7f1ea8d5a393f6720fca3750d61`
Genesis File: [`genesis.json`](genesis.json)
## 1. Install EOSIO from precompiled binaries
-Download the latest version of EOSIO for your OS from: https://github.com/EOSIO/eos/releases/tag/v2.0.4
+Download the latest version of EOSIO for your OS from: https://github.com/EOSIO/eos/releases/tag/v2.0.9
-For example, for ubuntu 18.04 you need to download `eosio_2.0.4-1-ubuntu-18.04_amd64.deb`
+For example, for ubuntu 18.04 you need to download `eosio_2.0.9-1-ubuntu-18.04_amd64.deb`
You can use apt to install it:
```
-apt install ./eosio_2.0.4-1-ubuntu-18.04_amd64.deb
+apt install ./eosio_2.0.9-1-ubuntu-18.04_amd64.deb
```
-It will download all dependencies and install EOSIO to `/usr/opt/eosio/v2.0.4`
+It will download all dependencies and install EOSIO to `/usr/opt/eosio/v2.0.9`
## 2. Configure LatamLink Testnet Node
@@ -54,6 +54,23 @@ git clone https://github.com/LatamLink/testnet.git ./
- Open TCP Ports (8888, 9876) on your firewall/router
+### Sample config.ini files
+
+- Validator Node: [validator-config.ini](./validator-config.ini)
+- Boot Node: [boot-config.ini](./boot-config.ini)
+- Writer Node: [writer-config.ini](./writer-config.ini)
+- Observer Node: [observer-config.ini](./observer-config.ini)
+
+### Writer middleware for RPC API
+
+The LACchain governance model requires that every transaction include two signatures, the user that originates the transaction and the writer node that allocates the required network resources to execute the transaction. The entity operating the writer node is responsible for the transaction.
+
+This requirement is met by running the following HTTP service as a proxy to the writer node RPC API endpoint.
+[Writer node RPC API middleware](https://github.com/LatamLink/writer-middleware)
+
+
+## 3. Start your node
+
**Specify a genesis.json file the first time you run nodeos**
```
./start.sh --delete-all-blocks --genesis-json genesis.json
@@ -66,9 +83,9 @@ tail -f stderr.txt
Check if you can access your node using link `http://**YOUR_SERVER**/v1/chain/get_info`
-Here is an API Example
+Here is an API Example
-### Starting and Stoping Nodeos
+### Starting and Stopping Nodeos
- `./start.sh` Starts and restarts Nodeos service.
@@ -76,39 +93,32 @@ Here is an Telegram channel
-
-## Copyright 2020 LACChain
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
+Visit the documentation website: http://latamlink.io/docs/eosio
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
+Join our Telegram channel
diff --git a/boot-config.ini b/boot-config.ini
new file mode 100644
index 0000000..2a6a374
--- /dev/null
+++ b/boot-config.ini
@@ -0,0 +1,62 @@
+# EOSIO Testnet BOOT NODE Config file
+# https://eoscostarica.io
+agent-name = {your_agent_name}
+
+# PLUGINS
+plugin = eosio::chain_plugin
+
+# CHAIN
+max-transaction-time = 200
+chain-state-db-size-mb = 16384
+reversible-blocks-db-size-mb = 512
+contracts-console = true
+abi-serializer-max-time-ms = 2000
+
+# PEERING NETWORK
+p2p-server-address = {your_p2p_server_address}
+p2p-listen-endpoint = {your_p2p_listen_endpoint}
+p2p-max-nodes-per-host = 150
+max-clients = 150
+sync-fetch-span = 2000
+net-threads = 5
+allowed-connection = specified
+
+# ar.obs1 PEERING INFO
+peer-key = EOS6QDQZYYtKGEJcHPbGYZpUEbZWe5igfzqUPuYiWpfwM3GBURJ7y
+p2p-peer-address = obs1.testnet.lacchain.eosargentina.io:9873
+
+# ar.val1 PEERING INFO
+peer-key = EOS69Gm2FveXAgELpUGSNz2144QebC5TFhgyZnxiBgzELXnfLQK4c
+p2p-peer-address = val1.testnet.lacchain.eosargentina.io:9870
+
+# ar.val2 PEERING INFO
+peer-key =
+p2p-peer-address =
+
+# ar.wrt1 PEERING INFO
+peer-key = EOS62xpsCq2RrYUGw2LsCVNvhPynDi5zdQ4wq5MVjH3JUGmT2zQPm
+p2p-peer-address = wrt1.testnet.lacchain.eosargentina.io:9875
+
+# boot.cr PEERING INFO
+peer-key = EOS8BH2nzvnztDRqszxnBLo3pvKrZRQZrRJgXBuKH7FoYkfaYNUd1
+p2p-peer-address =
+
+# cr.validator PEERING INFO
+peer-key = EOS8MKDDbwSvj1wpdDZd4CL11zKehx6Ez7MxH17GhF4jRENkDxNNJ
+p2p-peer-address =
+
+# iadb.boot1 PEERING INFO
+peer-key = EOS7Lvf76XgjhaLQs64u6AoVPoYaGAccGU2p5UTtjmxcvFya7bQHT
+p2p-peer-address =
+
+# iadb.val1 PEERING INFO
+peer-key = EOS5kgACYpGMKgz88ugo5JFREvPtMH22Hh9biKWPxzwb8bsM2oSGw
+p2p-peer-address =
+
+# iadb.writer1 PEERING INFO
+peer-key =
+p2p-peer-address =
+
+# observer.cr PEERING INFO
+peer-key = EOS7yKxL3TYR8zYZf1AkUJQhSno8GUQfTcr36ZsBKCgmASwAuKFaH
+p2p-peer-address = observer.eosio.cr:9873
\ No newline at end of file
diff --git a/config.ini b/config.ini
deleted file mode 100644
index 4eae09f..0000000
--- a/config.ini
+++ /dev/null
@@ -1,69 +0,0 @@
-# LatamLink EOSIO Testnet Config file.
-# https://latamlink.io
-#
-# YOU MUST CONFIGURE YOUR SERVER ADDRESS BELOW TO RUN NODEOS
-# (All other settings are optional)
-
- p2p-server-address = YOUR_DOMAIN_OR_IP:9876
-
- #agent-name = eosio
-
- # PLUGINS
- #plugin = eosio::producer_plugin
- #plugin = eosio::producer_api_plugin
- plugin = eosio::chain_api_plugin
- #plugin = eosio::history_plugin
- #plugin = eosio::history_api_plugin
- plugin = eosio::chain_plugin
- #plugin = net_plugin
- #plugin = net_api_plugin
-
-
- # HTTP
- http-server-address = 0.0.0.0:80
- access-control-allow-origin = *
- http-validate-host = false
- verbose-http-errors = true
-
-
- # SSL
- # Filename with https private key in PEM format. Required for https (eosio::http_plugin)
- # https-server-address =
- # Filename with the certificate chain to present on https connections. PEM format. Required for https. (eosio::http_plugin)
- # https-certificate-chain-file =
- # Filename with https private key in PEM format. Required for https (eosio::http_plugin)
- # https-private-key-file =
-
-
- # CHAIN
- contracts-console = true
- abi-serializer-max-time-ms = 2000
- wasm-runtime = wabt
- enable-stale-production = false
- pause-on-startup = false
- max-irreversible-block-age = -1
- txn-reference-block-lag = 0
-
-
- # BLOCK PRODUCER
- #producer-name = BP_NAME_ACC
- #signature-provider = =KEY:
-
-
- # PEERING NETWORK
- #p2p-server-address = YOUR_DOMAIN_OR_IP:9876
- p2p-listen-endpoint = 0.0.0.0:9876
- p2p-max-nodes-per-host = 150
- max-clients = 150
- connection-cleanup-period = 30
- #network-version-match = 0
- sync-fetch-span = 2000
- allowed-connection = any
- # allowed-connection = specified
- # peer-private-key = ["!!NEW_KEY_PUB!!","!!NEW_KEY_PRIV!!"] #create new key for private peers
- # peer-key = "!![PUBKEY]!!"
-
- p2p-peer-address = boot.testnet.latamlink.io:9876
- p2p-peer-address = latamlink.eosio.cr:9876
-
-
\ No newline at end of file
diff --git a/genesis-notes.md b/genesis-notes.md
new file mode 100644
index 0000000..f9ee5df
--- /dev/null
+++ b/genesis-notes.md
@@ -0,0 +1,324 @@
+# Setup
+
+### pre-feature
+```bash
+curl -X POST http://127.0.0.1:6677/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}'
+```
+
+### set boot
+```bash
+cleos-lacchain set contract eosio contracts/build/contracts/boot -p eosio
+```
+
+### Features on
+```bash
+cleos-lacchain push action eosio activate '["1a99a59d87e06e09ec5b028a9cbb7749b4a5ad8819004365d02dc4379a8b7241"]' -p eosio
+cleos-lacchain push action eosio activate '["2652f5f96006294109b3dd0bbde63693f55324af452b799ee137a81a905eed25"]' -p eosio
+cleos-lacchain push action eosio activate '["299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707"]' -p eosio
+cleos-lacchain push action eosio activate '["ef43112c6543b88db2283a2e077278c315ae2c84719a8b25f25cc88565fbea99"]' -p eosio
+cleos-lacchain push action eosio activate '["4a90c00d55454dc5b059055ca213579c6ea856967712a56017487886a4d4cc0f"]' -p eosio
+cleos-lacchain push action eosio activate '["4e7bf348da00a945489b2a681749eb56f5de00b900014e137ddae39f48f69d67"]' -p eosio
+cleos-lacchain push action eosio activate '["4fca8bd82bbd181e714e283f83e1b45d95ca5af40fb89ad3977b653c448f78c2"]' -p eosio
+cleos-lacchain push action eosio activate '["68dcaa34c0517d19666e6b33add67351d8c5f69e999ca1e37931bc410a297428"]' -p eosio
+cleos-lacchain push action eosio activate '["8ba52fe7a3956c5cd3a656a3174b931d3bb2abb45578befc59f283ecd816a405"]' -p eosio
+cleos-lacchain push action eosio activate '["ad9e3d8f650687709fd68f4b90b41f7d825a365b02c23a636cef88ac2ac00c43"]' -p eosio
+cleos-lacchain push action eosio activate '["e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526"]' -p eosio
+cleos-lacchain push action eosio activate '["f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d"]' -p eosio
+```
+### Create genesis testnet-comitee accounts
+cleos-lacchain create account eosio ve EOS6siJqwagvQvT254W6VEv2FsSuMe5cpVZwruteQ7zPTNMM5FVBg
+cleos-lacchain create account eosio cr EOS6qd8RdSUbiV3o8TNSPxXbVxA6unSJGyF2o4LLuwFjZKKbvrvDD
+cleos-lacchain create account eosio idb EOS6pRxjHwBv54L16BbFVLtZFS26Ku49KrFXg2Tcwnuaqv8YQB7sR
+cleos-lacchain create account eosio ar EOS5ctRLnjycmDzCkJeCxviPwVJ7SX5ckTpzzsCWoiJhpiL5MgBAn
+
+
+### change `active` permission of eosio (comitee account)
+```bash
+cleos-lacchain set account permission eosio active \
+'{
+ "threshold":1,
+ "keys":[],
+ "accounts":[
+ {"weight":1, "permission" :{"actor":"ar", "permission":"active"}},
+ {"weight":1, "permission" :{"actor":"cr", "permission":"active"}},
+ {"weight":1, "permission" :{"actor":"idb", "permission":"active"}},
+ {"weight":1, "permission" :{"actor":"ve", "permission":"active"}}
+ ],
+ "waits":[]
+}' owner -p eosio@owner
+
+### change `owner` permission of eosio (comitee account)
+```bash
+cleos-lacchain set account permission eosio owner \
+'{
+ "threshold":1,
+ "keys":[{"key":"EOS6booNQ6pV1b4T2Gy9C6SqLngzdymTPPDqwSZE6prB8MEkpasLi","weight":1}],
+ "accounts":[
+ {"weight":1, "permission" :{"actor":"ar", "permission":"owner"}},
+ {"weight":1, "permission" :{"actor":"cr", "permission":"owner"}},
+ {"weight":1, "permission" :{"actor":"idb", "permission":"owner"}},
+ {"weight":1, "permission" :{"actor":"ve", "permission":"owner"}}
+ ],
+ "waits":[]
+}' -p eosio@owner
+
+### add writer account
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "eosio",
+ "name" : "writer",
+ "active" : {
+ "threshold":1,
+ "keys":[],
+ "accounts":[{"weight":1, "permission" :{"actor":"eosio", "permission":"active"}}],
+ "waits":[]
+ },
+ "owner" : {
+ "threshold":1,
+ "keys":[],
+ "accounts":[{"weight":1, "permission":{"actor":"eosio", "permission":"active"}}],
+ "waits":[]
+ }
+}' -p eosio
+```
+
+### create `access` permission
+```bash
+cleos-lacchain set account permission writer access \
+'{
+ "threshold":1,
+ "keys":[],
+ "accounts":[{"weight":1, "permission" :{"actor":"eosio", "permission":"active"}}],
+ "waits":[]
+}' owner -p writer@owner
+```
+
+### set 0 resources to writer account (unusable)
+```bash
+cleos-lacchain push action eosio setalimits '["writer", -1, 0, 0, 0]' -p eosio
+```
+
+### set lacchain-system
+```bash
+cleos-lacchain set contract eosio contracts/build/contracts/lacchain.system -p eosio
+```
+
+# Play
+
+### Comité crea una cuenta [FAIL]
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "eosio",
+ "name" : "pepe",
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6wDfFCJqNYD3mteMZ4nEaYzx6s4TKKXeU4aQu35vyvexMWSdi5","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6wDfFCJqNYD3mteMZ4nEaYzx6s4TKKXeU4aQu35vyvexMWSdi5","weight":1}],
+ "accounts":[], "waits":[]
+ },
+}' -p eosio
+```
+
+### Comité agrega un validador [OK]
+```bash
+cleos-lacchain push action eosio addvalidator \
+'{
+ "validator" : "ar1",
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS5ctRLnjycmDzCkJeCxviPwVJ7SX5ckTpzzsCWoiJhpiL5MgBAn","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS5ctRLnjycmDzCkJeCxviPwVJ7SX5ckTpzzsCWoiJhpiL5MgBAn","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "validator_authority" : [
+ "block_signing_authority_v0", {
+ "threshold" : 1,
+ "keys":[ {"key":"EOS8M9LqAL964ZS5rxJ3WZtA3E1FvwWHxNJ8dsHrFDB1ywMqjZeJ9","weight":1}],
+ }
+ ],
+ "url" : "https://my-validator-ar1-url.com/lacchain.json"
+}' -p eosio
+```
+
+### Inspect `entity` table [OK]
+```bash
+cleos-lacchain get table eosio eosio entity
+```
+
+### Validator `ar1` crea un usuario [FAIL]
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "ar1",
+ "name" : "user1",
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT","weight":1}],
+ "accounts":[], "waits":[]
+ }
+}' -p ar1
+```
+
+### Comité agrega un escritor [OK]
+```bash
+cleos-lacchain push action eosio addwriter \
+'{
+ "writer" : "writer1",
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6nrfiTZ8EFyKsT4s5Z7UGd4JxZ5NGpNCo1yfZurURpPCUXppSZ","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6nrfiTZ8EFyKsT4s5Z7UGd4JxZ5NGpNCo1yfZurURpPCUXppSZ","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "url" : "https://my-writer-writer1-url.com/lacchain.json"
+}' -p eosio
+```
+
+### get only entity writer1 [OK]
+```bash
+cleos-lacchain get table eosio eosio entity --index=1 --key-type=name -L writer1 --limit 1
+```
+
+### Writer `writer1` crea un usuario [FAIL]
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "writer1",
+ "name" : "user1",
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT","weight":1}],
+ "accounts":[], "waits":[]
+ }
+}' -p writer1
+```
+
+### Writer `writer1` crea un usuario [FAIL]
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "writer1",
+ "name" : "user1",
+ "active" : {
+ "threshold":2,
+ "keys":[ {"weight":1,"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT"}],
+ "accounts":[ {"weight":1, "permission" :{"actor":"writer", "permission":"access"}}], "waits":[]
+ },
+ "owner" : {
+ "threshold":2,
+ "keys":[ {"weight":1,"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT"}],
+ "accounts":[{"weight":2, "permission" :{"actor":"writer", "permission":"access"}}], "waits":[]
+ },
+}' -p writer1
+```
+
+### Writer `writer1` crea un usuario [OK]
+```bash
+cleos-lacchain push action eosio newaccount \
+'{
+ "creator" : "writer1",
+ "name" : "user1",
+ "active" : {
+ "threshold":2,
+ "keys":[ {"weight":1,"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT"}],
+ "accounts":[ {"weight":1, "permission" :{"actor":"writer", "permission":"access"}}], "waits":[]
+ },
+ "owner" : {
+ "threshold":2,
+ "keys":[ {"weight":1,"key":"EOS8mnEwNj2F8Qjwr3NUyViXgLPxW2r6bL8Yuyg7wPXraD36cpUnT"}],
+ "accounts":[{"weight":1, "permission" :{"actor":"writer", "permission":"access"}}], "waits":[]
+ },
+}' -p writer1
+```
+
+### test dummy action
+```bash
+cleos-lacchain push action eosio dummy '{}' -p eosio
+```
+
+### create unsinged tx - called by user1
+```bash
+cleos-lacchain push action -x 1000 -j -s -d eosio dummy '{}' -p user1@active > tx.json
+```
+
+### cleos-lacchain sign tx.json
+```bash
+cleos-lacchain sign tx.json > signed-tx.json
+```
+
+### add second writer
+```bash
+cleos-lacchain push action eosio addwriter \
+'{
+ "writer" : "writer2",
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8JcAuhAgqmL8ehTwiZRkuVTCjei5joMEixmZ8pvKz2HXYNwUxX","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS8JcAuhAgqmL8ehTwiZRkuVTCjei5joMEixmZ8pvKz2HXYNwUxX","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "url" : "https://my-writer-writer2-url.com/lacchain.json"
+}' -p eosio
+```
+
+### add third writer
+```bash
+cleos-lacchain push action eosio addwriter \
+'{
+ "writer" : "writer3",
+ "owner" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6p6uRM3mhuj8p76hdWa94XyKSXjRPe7NenxGCTZeoP4g5X4QnZ","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "active" : {
+ "threshold":1,
+ "keys":[ {"key":"EOS6p6uRM3mhuj8p76hdWa94XyKSXjRPe7NenxGCTZeoP4g5X4QnZ","weight":1}],
+ "accounts":[], "waits":[]
+ },
+ "url" : "https://my-writer-writer3-url.com/lacchain.json"
+}' -p eosio
+```
+
+### link two entities
+```bash
+cleos-lacchain push action eosio addnetlink '["writer1","writer2",2]' -p eosio
+```
+
+### read graph
+```bash
+cleos-lacchain get table eosio eosio netlink
+```
+
+### set new schedule
+```bash
+cleos-lacchain push action eosio setschedule '[["ar1"]]' -p eosio
+```
diff --git a/genesis.json b/genesis.json
index 22dd393..57691f2 100644
--- a/genesis.json
+++ b/genesis.json
@@ -1,23 +1,24 @@
{
- "initial_timestamp": "2020-04-16T12:00:00.000",
- "initial_key": "EOS6booNQ6pV1b4T2Gy9C6SqLngzdymTPPDqwSZE6prB8MEkpasLi",
- "initial_configuration": {
- "max_block_net_usage": 1048576,
- "target_block_net_usage_pct": 10,
- "max_transaction_net_usage": 524288,
- "base_per_transaction_net_usage": 12,
- "net_usage_leeway": 0,
- "context_free_discount_net_usage_num": 20,
- "context_free_discount_net_usage_den": 100,
- "max_block_cpu_usage": 200000,
- "target_block_cpu_usage_pct": 10,
- "max_transaction_cpu_usage": 150000,
- "min_transaction_cpu_usage": 100,
- "max_transaction_lifetime": 3600,
- "deferred_trx_expiration_window": 600,
- "max_transaction_delay": 3888000,
- "max_inline_action_size": 4096,
- "max_inline_action_depth": 4,
- "max_authority_depth": 6
- }
+ "initial_timestamp": "2020-09-27T12:00:00.000",
+ "initial_key": "EOS7VG9vG8BMTJugbLprCXvwqztbH1seYmoGLC2yrfVfurVE4ACCy",
+ "initial_configuration": {
+ "max_block_net_usage": 1048576,
+ "target_block_net_usage_pct": 1000,
+ "max_transaction_net_usage": 524288,
+ "base_per_transaction_net_usage": 12,
+ "net_usage_leeway": 500,
+ "context_free_discount_net_usage_num": 20,
+ "context_free_discount_net_usage_den": 100,
+ "max_block_cpu_usage": 200000,
+ "target_block_cpu_usage_pct": 1000,
+ "max_transaction_cpu_usage": 50000,
+ "min_transaction_cpu_usage": 100,
+ "max_transaction_lifetime": 3600,
+ "deferred_trx_expiration_window": 600,
+ "max_transaction_delay": 3888000,
+ "max_inline_action_size": 4096,
+ "max_inline_action_depth": 4,
+ "max_authority_depth": 6
+ }
}
+
diff --git a/latamlink-logo.svg b/latamlink-logo.svg
new file mode 100644
index 0000000..1094242
--- /dev/null
+++ b/latamlink-logo.svg
@@ -0,0 +1,11129 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/observer-config.ini b/observer-config.ini
new file mode 100644
index 0000000..620b160
--- /dev/null
+++ b/observer-config.ini
@@ -0,0 +1,40 @@
+# EOSIO Testnet OBSERVER NODE Config file
+# https://eoscostarica.io
+agent-name = {your_agent_name}
+
+# PLUGINS
+plugin = eosio::chain_plugin
+plugin = eosio::chain_api_plugin
+plugin = eosio::state_history_plugin
+state-history-endpoint = 0.0.0.0:8080
+chain-state-history = true
+
+# CHAIN
+chain-state-db-size-mb = 16384
+reversible-blocks-db-size-mb = 512
+abi-serializer-max-time-ms = 2000
+contracts-console = true
+
+# PEERING NETWORK
+p2p-server-address = {your_p2p_server_address}
+p2p-listen-endpoint = {your_p2p_listen_endpoint}
+p2p-max-nodes-per-host = 150
+max-clients = 150
+sync-fetch-span = 2000
+p2p-accept-transactions = false
+api-accept-transactions = false
+allowed-connection = any
+
+# HTTP
+http-server-address = 0.0.0.0:80
+access-control-allow-origin = *
+http-validate-host = false
+verbose-http-errors = true
+
+# boot.cr PEERING INFO
+peer-key = EOS8BH2nzvnztDRqszxnBLo3pvKrZRQZrRJgXBuKH7FoYkfaYNUd1
+p2p-peer-address =
+
+# iadb.boot1 PEERING INFO
+peer-key = EOS7Lvf76XgjhaLQs64u6AoVPoYaGAccGU2p5UTtjmxcvFya7bQHT
+p2p-peer-address =
\ No newline at end of file
diff --git a/validator-config.ini b/validator-config.ini
new file mode 100644
index 0000000..738a2c7
--- /dev/null
+++ b/validator-config.ini
@@ -0,0 +1,57 @@
+# EOSIO Testnet VALIDATOR NODE Config file
+# https://eoscostarica.io
+agent-name = {your_agent_name}
+
+# PLUGINS
+plugin = eosio::chain_plugin
+plugin = eosio::producer_plugin
+plugin = eosio::net_api_plugin
+
+# CHAIN
+max-transaction-time = 200
+chain-state-db-size-mb = 16384
+reversible-blocks-db-size-mb = 512
+contracts-console = true
+abi-serializer-max-time-ms = 2000
+wasm-runtime = wabt
+enable-stale-production = false
+pause-on-startup = false
+max-irreversible-block-age = -1
+txn-reference-block-lag = 0
+
+# BLOCK PRODUCER
+producer-name = {your_producer_name}
+
+# PEERING NETWORK
+p2p-server-address = {your_p2p_server_address}
+p2p-listen-endpoint = {your_p2p_listen_endpoint}
+p2p-max-nodes-per-host = 150
+max-clients = 150
+connection-cleanup-period = 30
+sync-fetch-span = 2000
+allowed-connection = producers
+allowed-connection = specified
+
+# ar.val1 PEERING INFO
+peer-key = EOS69Gm2FveXAgELpUGSNz2144QebC5TFhgyZnxiBgzELXnfLQK4c
+p2p-peer-address = val1.testnet.lacchain.eosargentina.io:9870
+
+# ar.val2 PEERING INFO
+peer-key =
+p2p-peer-address =
+
+# boot.cr PEERING INFO
+peer-key = EOS8BH2nzvnztDRqszxnBLo3pvKrZRQZrRJgXBuKH7FoYkfaYNUd1
+p2p-peer-address =
+
+# cr.validator PEERING INFO
+peer-key = EOS8MKDDbwSvj1wpdDZd4CL11zKehx6Ez7MxH17GhF4jRENkDxNNJ
+p2p-peer-address =
+
+# iadb.boot1 PEERING INFO
+peer-key = EOS7Lvf76XgjhaLQs64u6AoVPoYaGAccGU2p5UTtjmxcvFya7bQHT
+p2p-peer-address =
+
+# iadb.val1 PEERING INFO
+peer-key = EOS5kgACYpGMKgz88ugo5JFREvPtMH22Hh9biKWPxzwb8bsM2oSGw
+p2p-peer-address =
\ No newline at end of file
diff --git a/writer-config.ini b/writer-config.ini
new file mode 100644
index 0000000..2454cab
--- /dev/null
+++ b/writer-config.ini
@@ -0,0 +1,38 @@
+# EOSIO Testnet WRITER NODE Config file
+# https://eoscostarica.io
+agent-name = {your_agent_name}
+
+# PLUGINS
+plugin = eosio::chain_plugin
+plugin = eosio::chain_api_plugin
+
+# CHAIN
+max-transaction-time = 200
+http-max-response-time-ms = 500
+chain-state-db-size-mb = 16384
+reversible-blocks-db-size-mb = 512
+abi-serializer-max-time-ms = 2000
+contracts-console = true
+
+# PEERING NETWORK
+p2p-server-address = {your_p2p_server_address}
+p2p-listen-endpoint = {your_p2p_listen_endpoint}
+p2p-max-nodes-per-host = 150
+max-clients = 150
+sync-fetch-span = 2000
+allowed-connection = any
+
+# HTTP
+access-control-allow-origin = *
+http-validate-host = false
+verbose-http-errors = true
+http-server-address = 0.0.0.0:80
+enable-account-queries = true
+
+# boot.cr PEERING INFO
+peer-key = EOS8BH2nzvnztDRqszxnBLo3pvKrZRQZrRJgXBuKH7FoYkfaYNUd1
+p2p-peer-address =
+
+# iadb.boot1 PEERING INFO
+peer-key = EOS7Lvf76XgjhaLQs64u6AoVPoYaGAccGU2p5UTtjmxcvFya7bQHT
+p2p-peer-address =
\ No newline at end of file