Hidden Lake Traffic
The Hidden Lake Traffic
is an application that saves traffic passed through HLS. The saved traffic can be used by other applications when they were offline. HLT provides an API for loading and unloading messages. Messages are stored in the inmemory database based on the "ring" structure. Thus, new messages will overwrite the old ones after some time. Can act as a TURN server for HLS's or other P2P nodes with GP/12 protocol.
More information about HLT in the habr.com/ru/post/717184
$ go install github.com/number571/hidden-lake/cmd/hlt@latest
HLT emulates HLS to receive messages. In this scenario, HLT has only the functions of accepting messages, without the ability to generate or send them via HLS or independently.
Figure 1. Example of running HLT client.
- Windows (x86_64, arm64)
- Linux (x86_64, arm64)
- MacOS (x86_64, arm64)
- Processor:
1x2.2GHz
(characteristic for relayer mode) - Memory:
0.5GB RAM
(~200MB of memory is consumed in relayer mode) - Storage:
20Gib available space
(the size of messages per day from one node in storage mode)
Default build and run
$ go run ./cmd/hlt
> [INFO] 2023/06/03 15:39:13 HLT is running...
> ...
Open ports 9581
, 9582
(TCP, HTTP).
Creates ./hlt.yml
, ./hlt.db
files.
The file hlm.db
stores all sent/received messages as structure ring
from network HL.
Default config hlt.yml
settings:
message_size_bytes: 8192
logging:
- info
- warn
- erro
address:
tcp: 127.0.0.1:9581
http: 127.0.0.1:9582
connections:
- 127.0.0.1:9571
$ hlt -path=/root -network=xxx
# path = path to config and database files
# network = use network configuration from networks.yml
Build and run service
$ cd examples/traffic_actions/keeper
$ make
Run client
$ cd client
$ go run ./main.go w 'hello, world!'
$ go run ./main.go h
$ go run ./main.go r cb3c6558fe0cb64d0d2bad42dffc0f0d9b0f144bc24bb8f2ba06313af9297be4 # hash get by 'h' option
"logging" Enable loggins in/out actions in the network
"address" API addresses for HLT functions
"network_key" A network key created to encapsulate connections
"connections" Connections to HLS's
"consumers" HTTP consumers of raw messages
settings:
message_size_bytes: 8192
work_size_bits: 22
messages_capacity: 2048
database_enabled: true
network_key: hlt-network-key
logging:
- info
- warn
- erro
address:
tcp: 127.0.0.1:9581
http: 127.0.0.1:9582
connections:
- service:9571
consumers:
- localhost:8082/adapter
"result" is string
"return" is int; 1 = success
{
"result":"hidden-lake-traffic",
"return":1
}
1. GET /api/storage/pointer
2. GET /api/storage/hashes
3. GET/POST /api/network/message
4. GET /api/config/settings
curl -i -X GET -H 'Accept: application/json' http://localhost:9582/api/storage/pointer
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Sat, 23 Dec 2023 16:05:08 GMT
Content-Length: 1
1
curl -i -X GET -H 'Accept: application/json' 'http://localhost:9582/api/storage/hashes?id=0'
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 07 Aug 2023 02:59:42 GMT
Content-Length: 68
b155d07091be0942fec4f3226d971566f3915a829e3e121bbfb7fd42e3e6bf6761fea3a22c42637a92185513126545b6
curl -i -X GET -H 'Accept: application/json' 'http://localhost:9582/api/network/message?hash=b155d07091be0942fec4f3226d971566f3915a829e3e121bbfb7fd42e3e6bf6761fea3a22c42637a92185513126545b6'
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Sun, 10 Dec 2023 06:27:56 GMT
Transfer-Encoding: chunked
17a89e19639d9cde53cc03f0ec20dfbcd0a5b06753fdf7d060fd80a7413724cd4e204d89a7e27fd6b4005ed52c378da34ce08c01cb2625d29ace30f850b6fd2a18d44afdf042b3a871ea88b2155cd4ba08c88a2e0bda54a1ace525322717a7a0a9d2ba9f25a196d67f976934f9be488ba0dbe75555bbfbb0bb338c000497f84d521e08f62da335be778a25741c3cca310daf63b3d94ec61ff21ef12853b9ab8a690907604031063e948c58f075dbb16a27b1704339e58c11720cb84747a656c15a900d6f3607f0fef8206a93b4318c4c53a45950c6d7c5131d9ea5f08b8f93508530bec657cb8174ffa1ba8e3a459a4d8875d2751390c4d7fa22188fce751714b7078ff1b1c3174af012262752a75b0092f26a2f7a6eba6784308aaa6b6b7699935e3c82eff1766d83662ac4b965a2e2a06fca30e4593dd1a44e0c68153d8233c1b60c9823319415bf49395cb425f80f5ee0f214611be7d41390234c7bc17559822ebda6391da89226eda451ee9e7bc24f7ed50c8c77bb7f33e0ff748b9571472af881f8dc4467f93e407bbd2bf8ec88f7874915e02c8f8f3343716e72e13f61430ec2655fb862641e12a220a080a99e7080abc8f6306f62ca2a40a6f9d50d5f1f90766c5ca58b11c90e392198c076eb978ccab902c7ae858320a2a0a5a54de1277a6071cf9eff79398c3c9ec126d90796b74f81f5863125183730c04c46b8171d54ebbb6716d589bd06b759c4aaed85316f7f166a6817a06dc92d86aed0443fbc18beae3118d442e6ef8545528858b0e65753634e4de7dd1c8b58b4842b9af094b8378749f7e1b21c25cd40a240c57ef5addff02e67f88af1a7d9168b5063f7b0125e63358ff0621f02dced2f59e1eead0051c2d0c59975e8473b9636db6116435615c7a529e1522fb15b9d0bf57e3ef3f4b8f8bc84b153e2ab9bf0b05e56dbabc5583a48f2781de3cc61fac716883c677b601d82b783251b2a60324c3705cf511cde99335f56c66fe4c85c3a8c0d2331daac84d078fb21ae012f6af7747863f1267be6659f04f61c992086c884596dbe9571e8336825814750904a11d0f2fb96f0591154db5f2c5ac1bff96630a4db986059b0b3ce44fd55cda58ab06ef7835b94a817cde6fd284fd11569030dd4b6727b9280a6d2bcd3fc47498fe88f42faa8f9d6bd66c7dfb334b0fa52eb55780a36bbefbd9f5154839504c7fc4007642bd5d6f699bfcc97fef8d8b9c71f463d08c8b71b1e38e1694c185d0e6c6361ccdf2fd7cf45dc0c25ee7f0489d042dcb1320becea5c36b371c511cb248a1eebf8452ef1549e1d6f90048d55092bd706b0420397a47235389756457a409f35a5600a20693bac0189d243e78ac94a0e054424d880af01ffbf6ce51ede58d90a6c3d8b7cf391a272d44b886cb32d54da12f9c774aa74f1cafbbda224dd95fcd11bb44b6e90c8f3ae02b9c5b411d5193a618a4e1706c7885872b10a7e9de1edfa54cfc99fe1256b2380010b3e4721bd93f1236180b3b29f3a9b8cf40c66f553b9e5fed00d3c31344c900a16818ae29de04aa8eac66f7c05a5a57f59577d324d518e966aaafbd0da95f98beacad3dfa41ea3ee703b4193add18b47ef5d6d78c97b8db98d85ff43d0af5b45f055db80c79b64b3f55c05420fb8049c50180419dcd365ccac2002cb7cb706128cf8357fbda7d7cf4b7efbccd914b404ff098ad91241917868e0d6e9bccbe77339a1297d456a5b4808611a0db1ec22a89d9a4a5bd3a4f250039318c872dbe0a792997cb8c142b5d5d0a91fddfcec62f715b436c6a90813d73248b863ca36b7c4c7b74ad40b8ccf60b1e6302a04a695b6ef6f38a3a161d417e563e7c1aad0d72ba7dc98eac3d93834471ccec14c97dbd42200771e27c073b33991b5375284c91883f4c8d000a3465521e6d64c8dcd71adce938271349dbcf12f4c3faaa6da1eb865462b069adf2b572e14ed8be4bf48ff7cb7d93da39deb0e5641ad372832d7592c4aa7e77b6b0fa0d1e3e5549f20cc7ae4cbed77866f1b6e3d83dea3b6ab818b3c415eeaa60afee0d49455ff7f660a6825b32b26f97da57c2ab491f08937efdd157ae6182ade638ef30fbeabead40cc35000f682b9dcc7f27527acd26a70cf03a6b10dfeb2169ffc03082294167fdc8aa20bd9996fc3c7683e8d953011bb5989e41e2e27cd8c813822b62e31045a324881a756c9c037bfe1471c1fd069b21fe0cef89223147ccac110419b47968d66ff73ce7ee688d5af092272678cb3828e7bc274ecb708fe89b390fd68c390bae75d361ed02cf96512daa8c95bc3dc2b0149bded0b6ba54c3a5bd823419dbe7c1c9ec7a6afd6db6d9c43d10fb1918cffb4415c0aec324c1aac9d3301b89c0d1c8f3835bf017cfe3002a648ac105bea9d21aac70bf10afc0d64669031773d9730157fee0291b663e5d2a4d717d9cd3b520f9180c1b5b36c77bfa69b06b1e48b94f43dd552da4bfdadf162f19e5ffd843f2303196494f64059ab5d5c7a331aa4a3b7b59ea2d4843ecffb2c2790c181a9dddbc2b049965d4d26057b219144777c1787f7d06520702f1ba5b0f2ab1de2a8620ab25669b28976551f4560e150ec4753d8d6c325585989a869c2928a340fe6d7ba7969e0bd3db60dbecc9b506a0955793f31812773d744412842b70687e7805cf49ace87a43b28fae27f911fdab1ef86acd4803137ae21584ac1a1b85f258f75f44129021d915abde877b38b69bcfaacac4519f8351c2b05ea16e58ce3d8b0621fb77a85a64d06b389d3ca9260f9c72a5fd4cc52eb63ba26bc88d474380659895d2c137f021f34e2580f7c3796d39553ed4bb45ea28b721cfd3b09fff0227b339ce5b8788e34de88ba4289e012b408f0fae396d373ba03a78b8117f602b9e91c948b23fd0274ae8515c56532a63ca3b67ccc4b5feddc02042bd4c83e24abba509e35c5e8009bd0395194b5b4299d4af58f7c11d9a1a952de3986773d850f1ab9b10b492c4199acb7d131eccbec2f85a4fdd26b62161e84ce4dc9bc18c87b3485ba421574131d0efedd0545d1384458e78dc60d51e290d909e379f9d4cbe009c864baf107c2d040851f71dd41a0b877f0527dbf66c850719a3a285daa99cf6f79426cc177f5d632e0faeadd6835087723b2c5291b8f37320be84ca141759c7f86f2a54f01c730d18557f9d5fb56affdfa2f64598487cb35a1aa3226cebf806869a814273a6f9744905e38013df64502a0271a76a2054f24bbae5f6d8b6498b4da1dbb8a46902ab841a263c6648c78c2ba8bd30cabb674c2ab3d2972f0963800c1503b6f966e3f67d49893a9a561233ceb6cd8b800504c35d0f3c072c6222008b2732461a4b3debce54cbedf9c5f270bd186480c6d0608b6552c2afd8fb3484b083b3f097842ea7aa144e22f76c9388cc473e1ceed7f7c81afa08c83186dffadd38033c37ed35bfb52864c1d70ce611fe2edbeda960e7ada5a5f2f8ce0127ecb77338a40fa7bb90f9e9d91421700446ee960a203d66ad6004985eaedca0c1ca656742e8329fe3c8f84d8df8f3b3d712a7d9b442f19158c5d7dd738dd7399385ee575a9f914cc88cd2a6bb5c76f702b2b8cc3f743808a600fc7d4e6fddae47280e68503cae3412d5e474c85edd6577d27c58063c320395ae1b99a99a3b5765a397fe8f1e63a902b3d24f297faef9c030571544225f7292ca3d9e243f399c6ff96969944d5d943485a634680616fdd76819d2ed8c036c6ee54ce7bd29b695cb4d2a7993b847283d1e616eeab680cfa528f621f4133750ab926c67a352c4bce1be67273805712e41de7d76febcb1376ddc3b1cf60198430cdf5fe50e0d244aceaf42bc52bb66d00791117de91f1474a8eef61917051706aaa1e9ac9ce2ff4e0c9e1a57b2f4da647567f656f0b1534688c024a8e473d742769911356fe017ce8eb7a6783e2718e8b47edae2af371543422b912ef329f471afbedbea73f1051210f480fa3aaab57b352d2b2424a60e1e3450cbb62f2628146d798546a823efa580f3b00e503a2faa7ad29fe1ea1ca8902bb35a240e1e6a3e687a85c34112198ab78d04a6979af2ca8559dee10f75870575bbaabb802e422d0e5a297c0e28c470a8fdee76349952928ace9db4dff320b109fe7d2d2af0386572a420dc57ee221f98fc2310e031e6e9addff182923c0d5b4c8e70997fe63563d72accf0247b27f1d034570f7994bc46fab7a8d218348a02312e25f82bdff712fef74d92dda30a07ab4ac6e231358f8e626ad46d27599111a26cf4bcc0358160d0930a6648e8660b45317d50811c1cb217586076c474b3aa4625a27bfc9f66b5bf79ea5b7111dde8fc1b3d927bec41d802f88544da2b40f3b62f057a283cab15a027d969248ca884a9bacb6ecf45a7be64b5db278e7137b62e098e73b919e2f53f78ce7b001d21cfaa01f8f4a9ac925980cc91e2721481f1f372c454d31aa3faeee75882d97150faf0274e9d014a1c2bf7c57d5e4a53d8fde21e720d0b818c9ecc00fb19a2e2ec28110e30b0fde2c58cc8c34e44d06eef98ef16899a22c70d28d55939b4bfa77589fa85aec7d08f0445b5c0e8c7f37687ee3a4be81ff1e92f7ffe5ed2d364a73ca6e1f04484886266010f9f4c81217b6d1ebf8cd3c6f2b4d600c77f650100aeeee963b762f55af9196ff0824d6b1abaecc996266488b4e0aaef43bb5c146da66c68842f833bbf58c164729f7a09bbb0fa6c21bbd12ba43d0382008ea8bc15bb1ab31769c357f15f70dd7f76a375ca02470334be564a1d2541fdb062d56dec52861cd31d8b0ffa7d88c2fa9b57a76780848d0d1e5ba08097ef9612482caab2fd305cfca844f0cdf2a8b71595e6d5f1cee20d08c43e8e1398156ea4be3bbd8c1d002043436f1a06ea71907ecd5f023c550c74d6635f949e0a1d4b8758dcd48ec60e5b617f08ab1e288e5f1b1098fa3110432e54be31871f602885562387a4d66ea125f84efb3341ab9b74d40ee8bc2f000adb8d0e7769b29d32c51c482505e9ee261e2adb90d5074d4b10c9f527ffa40871688c4f85b6f852d92cb44b9133766f945e6bb1deebf737c4652bc064ef69c5473350600076480055405a4724a590b17123ed69133280efa3546865c2409ec7c5381052d00eced19c5ac4d17ca4d282eeaf7202bc1a7cf76d57a2212955dc197d1ae9c0cad3f76445e0460bd8cbb1302681877436e0a1ec879fde03ad45ed5baf0d89c4ce14898fee94530657d59fa80f25e199317eeb3f7babd737d301662ebad306f1f02b745d99fe57fd3c764d5a2cd05915ec7a60dd2d205f552388aac2b74081ba685a8ee863988b457b3b6d1afe02fc2aeadc4dd6452b012e4f7730fbff4b41f1f12ae87221b67c9e0c55be603a48e9ca185c2547caced3875478c5b8a04d3da93fe27262b894c881138df0731854b3178b84b9b1f215fa2b0df81ebaeebb5a2b9e033f6a78e3f955ba9ab650f92bcb2590f93335fa6e5c340893794135e6f29c1e17f64a5ddd1e614acbecb516d415cea252738ded7a911cb1b6d5cf74da5b73c37207b604e93b4c03b81acb302203598eaaa6f7105e015ec48ceebbf0c6020c78bba0a241a46d7f6150c659311d6a881e2272efe7b6a388a48fd2a51000372fdbf4a024ece1f4d34aa864ba07d19d02b241e71e7e41db10f32e9dc876fd79c22df5151a9525e3c0889eed5e086968a33d74e4f71af0390dd85a5156501e3ca6f67f6c93f39cdd2931bfe98b187984287ea1e21f36252d1add9b0242fd240e909ffe8b158912c5ccdbf01ba3ba118debdccb02cbb4b1044668856c05906d4618b2fb8553d269dcbf9cf4413c7f2ca64b246c48932a2a5d9edfc684c3ddcfb6ba9608b090386a42c9630c6ad05f0d5316560a8eb6a01a0565cae346985e7c0b73dacf741542cd77961d1f8b9a972a0a47bf5fa33e081764efaeddabeba96c416c905ca1f0d517a6b13befd8d0f82ee117398b9111d46656e6662fab3488cc66bf05f76018da6f3e537fddd5fd437becb394910fd1bf65440e1c4bf4e9073783573a76193911994509db38d1901cf6f2678da904271d233820cbdc937b9fb873b8fe27c6962cbc6782cd2fc2f189557e7c5e3666c58f2dba8827025acba2e7abb68b3a443d8eed6b7b04bcd39d7698d72e25705035e6ba4e2d51587b577f36b196c6da1f60e95fbadad5006f472bbcbedc44a14bf338f099f0290b7fbfcc505bfba4c335becce253b7b9f28d3a9f1d69b808d123ef39d4b98bcae0b261dfe1963ab2aa03eb8d76ecd68c3076159ec4f12d4f55dbd9ee35bd5fb33e0cbbd881ad0801aa06e8c7dba4514a2468cf186e7ce8a8702afe3a63497ba67894b36ac95c4ded85adb3220cf1975505a519951366c5ab8bdacff440e47bdc3dfc2b4b0b7d48163d339ae6d321927ffea8e0ec7c3563f68df3a75e76aa6bb307c2cf98579c807355e654dd446047a7aa02e64853c876a7b4cf47b581684b67f8d3841b274cae1e09be629a9b540ff219725e5840714c4a799283f3b741459522152905488803d8413ee6f49f9196785b3050ab06969de6884ce4b29650531436effdd46ac4507286d11ecda6c21b5c27c0ad45d35961a49b3be84fb988e3dabda4dbdaca40a4a934acfbe76c0e03cf4facf0b51fe38da9df1fbfca849e36fdec12827ebc38a1f002e772059d416e250322023df6079abdadd5a2768432d3212e69ef402bd117646d3e6e158ca6cb828da73f3f1a81836a88e86566ae25e44443f2c4a344c366abb44dc6f9d6242b83e8a448c653225a0cf5a0d9373a5550d6de84292db9d3b4c8b2bfbcc818086334848dda8bacbfb78a42ac7ea1feefb460ac638d5e2448e6780e1d4703376db8c661a371f24c56ab3a20d8d63269f7152685c51a9436fd2a97325f393a634238e21e592b026f7189f2cd6dc130d7655d23d0edc037ea7ad4526e8c080935cac0d4e71802810246230618fde0296d226a58b883eef880d508f13b73055620fd5e72c59a33a9140e592c18d0e4775b17eb695ee85a4ee96df667411b964b31208a4217ea1d1c9e665a3189f8da66c41972992f9f772e21ff137ecf01e8264b62fc9c8543f468d8abf44f16c4a437a101d4b32d7b50849cb08394d63fd86aed8f491b4c2426ab383f8238927d4840f0ee9dd16c9466e8adbb9a397cecdf4d1df233cfb9fb96478a3b9a7a8c6f9a1d44968c8c135f0c8fea25385433a77fee5095d2108fab1c3f65550ec18bf72bf5804780ddf2efe827a7d7793ec298c9b653736bebd45348d44536681608013f7eb2d416df62c52f4c18fb53720de6892a5c1e45833d1c4dabc6d047bfff0030b7bf0a18993540afc81981ad4123e7a411cf1adc9ebeea08dfc5add4b3d4489a7b1612fc9baa1250d09f6bf53e2fcc2222ba34fc80cb37f2bba6b6ac9f72b9c3e147af06af0e7a8db90294ba80c820efad775a6387169d02b106196c354c17ff91fcbb953daa7baba16effd43fc0b66760fd4343eeaa6a2da83427683929cfb9e89b4846de637ddf5752d30a5a9ea493fc0f9a428f8c7a84b9d35e6769aab9c1f29bf160621212e63a8d729437028d52bf0ab5aa0635175e6f422cef114f4bb1c2e085bb92cabe45dfbe425238bbb6d68338bee8a748cc5f165b54b04dea083a778b466032601c11725af6453e3ecd8b6a69a0429df3eb3dc2222a6ca81c174a304a1933f3bdd7f7512d7ee5e60b46fb3c6fb3a9f313ff1a504a91522fddcd653a4f06b621bf584227f1eb89f1209e6651199d843f51b966bcf3ddf88bdbf6bb1400f3c616803c7e3d776a04dd86753053aca35956bb5466d2fe856075c85317dd6b43678e35e2bd770b560530b8c0ba88cbf9a20813f381a4ff9e4821f31012ec98218a1b2ebb29af0aa5b2219f0d94b6fe3335d22688be53c26208977cdcdd1c815db8109d01f599d1c5a060b0538a7e4be7a0f76d059533fedd349a61b27b67b67a9528fa0d1a4f4e32b0792336a1b39f811e6c01ae7d66a7d07bf8aa774966b0fe1e8492ee51c64708ea14043368705f176478644b8a8142af9eadbb16ecb4632e95094c8b910e82104313a901a310be191ca28140d2d063953e4dee451b873ce89ac13b0d661698352caf1ce4db0ba8f865119423cdec549a02a9ac0d3dbe087796a6c13079236232661b346fc4efc84215129d703cd5172cf260b709cd5dfa8435aea4254aee155661b21fc92f194714e7176fef89b78329496ed7decc22bebfd76a1965531f1849b0b7cee401c4162a3a236279f8ef134e2758623a930faf9df702180f7e55adae6eea8dcd12e9868a3fc2aaaa4e3ad89ee16419cbc39bb904c38337786e781f76f2084e7f8e8d0f06264d047323e78b941fce7a940fc60b94b294c7d40e49627efb4c337fef0de672a78b5e653fa7134b1a5a05d0e140089cc2157a31855a5eab99e0465976742362d7525c6b4cf0f895476e321ae7e0495e849419cefebb77e3eac95a2213ff450d90374580526c22a5a40772828ba5d065bd4bd3425d7bf9348314722a0232629810fabd3d7433fdf1bb405c4499c5ed090bc9db5636dfadbae3c2c115835766f6c8ab7663f2150c0ddf786065ebaf404b7578b1eca7cd074a8351a1974a392682fb0feae53000df2804af578a93fd52b0d24a3194301190e0840bc1482f089fec79de18b1a39ca33d5b654e17b89536720e180f793674b06aac56867cfc4742c2e3431edf9e4c2d3ace1ac8e06343e05369f90d53be40f17cc0c88ac5eb83dc4ff5148e30f6994657efbbcd3fab7121f50bf2605a01271cfe5b1b6ef3839791b9e21a33dd6d18a50579977322ffe040fb859304ae233c7a61a8cf165b7c5880d473e27024c9f46be2cebfb661f9c842cc5fa1de4e7d4200d5358b3d69f45417389b517ec5649708516e2aa0089025a00a494b7dbc310a8c2d99029e27ae798de67f9c3bd26d93e060a64b92ca67b3eb14f3ed47ce333c4eec036b22e26d63f831ede85ff0cd0242fe2f7fba29fe0e6ac907b2328cb600d011575c125894e8bd1235c5c6a8bd5372aaf3377bd0b59fa9ea2b898d0c0043e5329ed7e9698bcee1865171a8c1e2bd0d879f12cc3c6e07e99bba77f5fa754c9adc4301a490c8fa47e0fc425077a47fdddee35e1a91596e88f319b5fff838d2984d5a8cd5d6c69e653e3b11a20a513a6a4b9c986e41ff44689de155a049dbf03a534a3e8198e1fb53c50e4bb40e971ea1122d2d42d98a6cc81dcff7c64caa317307248d53ba931f50cf52b2453877cf4c42b3fe9406b924c2825ddfe54a3d08abf227751641d5b8de02cc7ef32c8cfe6a01df6a455c5be5db2828a545d904050d1aee1f675c1af283f1a8f729f0eea00e79027d90f2ee72aae8d097897663b39d13320c4f758f1c4d55b4a12fe904414a78fd91ac9bf8e247f7588f1101dbc72bde9af0af4d8e07ebeb9dc0a154be80f60de2631c90a1ac6a841faaaeccca19bd1ee704ab3519f9d5316fcd44bcbc56b0311bac159e6174f1dbae9bcf37d30517db68c9398b1aaba0c7b2056cf05978091bf6888ff2f1d48d0a2faecb10cfe276891a56eb48dede8fb193a507d97e4b15b1f5e3af14454c37c9878f89e80390cf5cba5ac5160d0a402d39a44dd405f7661bcf7703b4e3b716c07c8353e9750772cb2327b7129d795f590bad2cc1cbf73fbb03b3efc4e03fd69bdc38b0d6187ee7d3c51c721769c22efec27432883597b89321d35fc69988a0caef027c5c3e1690bfc207bd1e3daa09236290b0cf2660fd1a8c219d3f935eedeb2b2cf48d62da62b362b2f8ccd93b62c6f9a3a0dd999f3714a995d4d873f5c3289070a95c39b495fb0767164c04db567dd8c10334cd30145c3be9b4549a22371c2d994903953043d38dfded865df7bfe606ae1bc6a5616d60c5262a0bb5f79e52bafb7d9849ca2869f1563e15cbc5f2b68bec892aa371c9d69b4fac49948eed6a8c017d1ee225380eb1ccaf87f4d87cc57202128a6090182a7072a86743a4641b872cabe016cb6d8bda3c65373bfc7546ded5c0da5860926eae4fd87991f48d7486c812fc7e6ea08895d572011c9936bf38af1ced2d271c4679557e861b2343e0f50dfaf5eaa458e9394a5a56d7c62a9d89e0c39f82c9928d7164744366a9301609444b47f1f6f1f78f4534fbe7f40b94beb016faf12c1082182e61514a13b8c739c2efeec60d2396e696062166f4066873d75358a73b356cfba4dc4b34321eb9a30c7f79fd427d04d1653211c37504370c1e44071e972a36d99038d6aa1134e36562236f3608839464a6367166607b7991b178f1b137ac4eaa9b21bb813ea4284fcd79d60bc312d693d4b03d99bfe36a90ed43c7ae38f0d66a17dc2d4afeb9b55be1febfb33579815f8d03f1ee7dfede1ac28c5389e237634524e7aec8cde3c2e46b14dba0356f51135616b923b6ecaa8e8950c6141d92b7881d97c44c6a89a256004a5f80884da3e74bac91753720e4e3443dc0053a26db1999f640cc284377e44060e87878e94387f0ca04a27be6844767002a59904acab3a737ef352cadf37e6a6d83c5b0e6b82439ccfcb028ea629d917eb87632a3be317688cdda9cb39853e5548d68164228c62451cfb172dbb76289e798eafe928e8d198cbbe17c771d6c12eeb0acd0829ad51d339d4f4e9244f59061e94de5da80fa71d86af17b773a6a4c8cc610b906f25a64f43638072ac07229f19bb23afd421321722e8fa2cc8b580bc24dc9f9dbb2c9cb6b0e0f41daf574467389dad8c672cafa729d1051f4b39b47e6c9e6eeb104e0c1e57cb9414390825fe0654d6dad7d6a8858a34f82f326d47178178a560fdb2d1775a42b0fba6581463832192a461ff4eb4b7b75c9334a3885faa3be32caa65a0b44dcb332b1bf7187717cbef760848b4288c00d2b44282468efeaeb99022161a629afc04b89c7b99603c235d7384e81d7a90cb9f415a62308dc6ea0f62a499c74ba2132018ee79947a055be7089540cfab255660dbc01cb4e963557c30a2b3fbec7b94bfc41930213186275201f552a8f9c3cbcade42630148ba04a2be63443ed8dd9691df2f90a99c270ccd2721d176d05fbb6153e7749e99256e7fb3c797c9140d91d9ca480b483cb1665587643a6f32a101dae4fb815a46f7a72aa69108b98e36ef3bb52bc9c88d69d034e14dbccb322ec12b8142b522ef2126dbfbd2a5439e673d43a107f9f3db1c80e672ab0c005585f75614b25f22b44a3d728263cdf8c31fce4ada3f0de40adbcc0a2622eeeb3209740505c603fcc67f3c3a2b91d11ebe56d6277674bf59e1486bfb0d2644c963e9f3a8a1ee061367d396900e0089e0ff89b6a0c5b80a11b1edd0f39bd6155491488b802e563b80bfcd38d8dd27fed3bfaaa1e37d3d22ff3746dbabd71f25502883f51e073515629b7ba06f3fa66217bcbe2be6b9ff23f83d259e835514a904dcf373c7cda0eac566a35d6d9951cd265da7e622c207190c510e8476afed19d489e5a3ceb1fd99df6e14cc7e00b66819a7ccab32d28b0b33217b1e9cf5c51d3537e8c695d07ed656524ec389bbe482a428337098f0c282f47d62e2d546058d03d2a52eaada3a0f78e0208a4f29b3506e02ce4bbd1c3d03d311d781b8d4969fea85992ba10d54fcda007bd8f2526f503e372b1db9d7a1d59562573e878b9ae84feb5c86d75f170f32d4f171b4db668ef0
curl -i -X POST -H 'Accept: application/json' http://localhost:9582/api/network/message -d @README_example.msg
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Mon, 07 Aug 2023 02:43:35 GMT
Content-Length: 23
success: handle message
curl -i -X GET -H 'Accept: application/json' http://localhost:9582/api/config/settings
HTTP/1.1 200 OK
Content-Type: application/json
Date: Sat, 23 Dec 2023 16:04:45 GMT
Content-Length: 126
{"message_size_bytes":8192,"work_size_bits":22,"messages_capacity":2048,"network_key":"j2BR39JfDf7Bajx3"}