Basic requirements and step-by-step plan
## Milestones 1. Setup **Unilode Proof-Of-Authority network** (`UniPOA`) with 5 initial nodes, make sure that it's scalable and expandable (up to 10 nodes); 2. Run the network; 3. Deploy `PheixDatabase` [smart contract](https://gitlab.com/pheix-research/smart-contracts) to network and check basic features manually; 4. Configure `pheix.io` API gateway: it should be able to connect (auth, pull and push) `UniPOA` master node. 5. Test `UniPOA` connectivity, load-resistance and reliability via `pheix.io`. ## Step-by-Step 1. **Setup `UniPOA`** 1. prepare genesis; 1. prepare docker containers; 1. deploy to servers; 1. setup bootnode(s). --- 2. **Run `UniPOA`** 1. initial run; 1. debug; 1. manual test. --- 3. **Deploy `PheixDatabase` to `UniPOA`** 1. clone repo; 1. install dependencies (go, z3, solidity, etc); 1. compile smart-contract; 1. deploy to network via GETH console and helper JS-scripts. --- 4. **Configure `pheix.io` API gateway** 1. add `UniPOA` public endpoints; 1. add `UniPOA` public endpoints access credentials; 1. update local database for caching and other system features (search indexes, data proxying). --- 5. **Test `UniPOA` connectivity** 1. prepare test data; 1. run tests; 1. report load-resistance and reliability details. ## Dates milestone | dates | aprox. hours -- | --- | --- Setup `UniPOA` | 1 Mar 2021 - 14 Mar 2021 | 40 Run `UniPOA` | 15 Mar 2021 - 28 Mar 2021| 40 Deploy `PheixDatabase` to `UniPOA` | 29 Mar 2021 - 10 Mar 2021| 40 Configure `pheix.io` API gateway | 11 Apr 2021 - 20 Apr 2021| 10 Test `UniPOA` connectivity | 20 Apr 2021 - 30 Apr 2021| 20 ## Subscription details Payment model: **{+ PAY-PER-TRANSACTION +}**. Cost: **{+ 2¢ per transaction +}**. ## API stack 1. **GET** — search data; 2. **POST** — store data on blockchain, (4096) bytes per transaction. ## Default search options 1. Search by address (node unique address); 1. Search by transaction id; 1. Search by block id; 1. Search by event id (every event stored on blockchain will has own identifier);
issue