From f31f9671a949214a2489439918142356673275e3 Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Wed, 8 Jan 2020 18:14:32 +0700
Subject: [PATCH] [+] Added basic example for creating cellframe node.

---
 test/example_node.py | 126 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 126 insertions(+)
 create mode 100644 test/example_node.py

diff --git a/test/example_node.py b/test/example_node.py
new file mode 100644
index 00000000..540273a0
--- /dev/null
+++ b/test/example_node.py
@@ -0,0 +1,126 @@
+from CellFrame import *
+import os
+
+app_name = "example-node"
+dir_cfg = os.getcwd() + "/testdir"
+
+json_string = """{
+    "modules": ["Crypto", "ServerCore", "Http", "HttpFolder", "GlobalDB", "Client", "HttpClientSimple", "Mempool",
+     "Chain", "Wallet", "ChainCSDag", "ChainCSDagPoa", "ChainCSDagPos", "GDB", "Net", "ChainNetSrv", "EncHttp",
+     "Stream", "StreamCtl", "HttpSimple", "StreamChChain", "StreamChChainNet", "StreamChChainNetSrv"],
+    "DAP": {
+       "config_dir": \""""+dir_cfg+"""\",
+       "log_level": "L_DEBUG",
+       "application_name": \""""+app_name+"""\",
+       "file_name_log": \""""+app_name+""".text\"
+    },
+    "Configuration" : {
+        "general": {
+            "debug_mode": false,
+            "debug_dump_stream_headers": false,
+            "wallets_default": "default"
+        },
+        "server": {
+            "enabled": false,
+            "listen_address": "0.0.0.0",
+            "listen_port_tcp": 8079
+        },
+        "mempool": {
+             "accept": false
+        },
+        "cdb": {
+            "enabled": false,
+            "db_path": "mongodb://localhost/db",
+            "servers_list_enabled": false,
+            "servers_list_networks": ["kelvin-testnet", "private"]
+        },
+        "cdb_auth": {
+            "enabled": false,
+            "collection_name": "mycollection",
+            "domain": "mydomain",
+            "tx_cond_create": false
+        },
+        "srv_vpn": {
+            "enabled": false,
+            "network_address": "10.11.12.0",
+            "network_mask": "255.255.255.0",
+            "pricelist": [
+                "kelvin-testnet:0.00001:KELT:3600:SEC:mywallet0", "kelvin-testnet:0.00001:cETH:3600:SEC:mywallet1", "private:1:WOOD:10:SEC:mywallet0"
+            ]
+         },
+        "conserver": {
+            "enabled": true,
+            "listen_unix_socket_path": \""""+dir_cfg+"""/run/node_cli\"
+        },
+        "resources": {
+            "threads_cnt": 0,
+            "pid_path": \""""+dir_cfg+"""/run/cellframe-node.pid\",
+            "log_file": \""""+dir_cfg+"""/log/cellframe-node.log\",
+            "wallets_path": \""""+dir_cfg+"""/lib/wallet\",
+            "ca_folders": [
+                \""""+dir_cfg+"""/lib/ca\",
+                \""""+dir_cfg+"""/share/ca\"
+            ],
+            "dap_global_db_path": \""""+dir_cfg+"""/lib/global_db\",
+            "dap_global_db_driver": "cdb"
+        },
+        "networks":{
+            "private": {
+                "general":{
+                    "id": "0xFF00000000000001",
+                    "name": "private",
+                    "type": "testing",
+                    "node-role": "full",
+                    "gdb_groups_prefix": "private",
+                    "node-addr-expired": 168,
+                    "seed_nodes_ipv4": ["153.256.133.160", "62.216.90.227"],
+                    "seed_nodes_port": [8079, 8079],
+                    "seed_nodes_aliases": ["kelvin.testnet.root.0", "kelvin.testnet.root.1"],
+                    "seed_nodes_addrs": ["ffff::0000::0000::0001","ffff::0000::0000::0002"]
+                },
+                "name_cfg_files": ["chain-gdb"],
+                "conf_files":{
+                    "chain-gdb": {
+                        "general": {
+                            "id": "0xf00000000000000f",
+                            "name": "gdb",
+                            "consensus": "gdb",
+                            "class": "gdb",
+                            "datum_types": ["token", "emission", "shard", "ca", "transaction"]
+                        },
+                        "gdb":{
+                            "celled": false
+                        }
+                    }
+                }
+            }
+        }
+    },
+    "Stream" : {
+        "DebugDumpStreamHeaders": false
+    },
+    "ServerCore" : {
+        "thread_cnt": 0,
+        "conn": 0
+    }
+    }"""
+
+init(json_string)
+setLogLevel(DEBUG)
+
+sr = ServerCore.listen("0.0.0.0", 3307, 0)
+EncHttp.addProc(sr, "/enc_http")
+Stream.addProcHttp(sr, "/stream")
+StreamCtl.addProcHttp(sr, "/stream_ctl")
+
+if (configGetItem("mempool", "accept") == "true"):
+    Mempool.addProc(sr, "/mempool")
+
+ev = Events()
+ev.strat()
+
+rc = sr.loop()
+
+
+
+deinit()
\ No newline at end of file
-- 
GitLab