Skip to content

Latest commit

 

History

History

hlt

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

HLT

Hidden Lake Traffic

hlt_logo.png

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

Installation

$ go install github.com/number571/hidden-lake/cmd/hlt@latest

How it works

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.

hlt_client.gif

Figure 1. Example of running HLT client.

Supported platforms

  • Windows (x86_64, arm64)
  • Linux (x86_64, arm64)
  • MacOS (x86_64, arm64)

Minimum system requirements

  1. Processor: 1x2.2GHz (characteristic for relayer mode)
  2. Memory: 0.5GB RAM (~200MB of memory is consumed in relayer mode)
  3. Storage: 20Gib available space (the size of messages per day from one node in storage mode)

Build and run

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

Running options

$ hlt -path=/root -network=xxx
# path    = path to config and database files
# network = use network configuration from networks.yml

Example

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

Config structure

"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

Response structure from HLT API

"result" is string
"return" is int; 1 = success
{
	"result":"hidden-lake-traffic",
	"return":1
}

HLT API

1. GET      /api/storage/pointer
2. GET      /api/storage/hashes
3. GET/POST /api/network/message
4. GET      /api/config/settings

1. /api/storage/pointer

1.1. GET Request

curl -i -X GET -H 'Accept: application/json' http://localhost:9582/api/storage/pointer

1.1. GET Response

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Sat, 23 Dec 2023 16:05:08 GMT
Content-Length: 1

1

2. /api/storage/hashes

2.1. GET Request

curl -i -X GET -H 'Accept: application/json' 'http://localhost:9582/api/storage/hashes?id=0'

2.1. GET Response

HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 07 Aug 2023 02:59:42 GMT
Content-Length: 68

b155d07091be0942fec4f3226d971566f3915a829e3e121bbfb7fd42e3e6bf6761fea3a22c42637a92185513126545b6

3. /api/network/message

3.1. GET Request

curl -i -X GET -H 'Accept: application/json' 'http://localhost:9582/api/network/message?hash=b155d07091be0942fec4f3226d971566f3915a829e3e121bbfb7fd42e3e6bf6761fea3a22c42637a92185513126545b6'

3.1. GET Response

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Sun, 10 Dec 2023 06:27:56 GMT
Transfer-Encoding: chunked

17a89e19639d9cde53cc03f0ec20dfbcd0a5b06753fdf7d060fd80a7413724cd4e204d89a7e27fd6b4005ed52c378da34ce08c01cb2625d29ace30f850b6fd2a18d44afdf042b3a871ea88b2155cd4ba08c88a2e0bda54a1ace525322717a7a0a9d2ba9f25a196d67f976934f9be488ba0dbe75555bbfbb0bb338c000497f84d521e08f62da335be778a25741c3cca310daf63b3d94ec61ff21ef12853b9ab8a690907604031063e948c58f075dbb16a27b1704339e58c11720cb84747a656c15a900d6f3607f0fef8206a93b4318c4c53a45950c6d7c5131d9ea5f08b8f93508530bec657cb8174ffa1ba8e3a459a4d8875d2751390c4d7fa22188fce751714b7078ff1b1c3174af012262752a75b0092f26a2f7a6eba6784308aaa6b6b7699935e3c82eff1766d83662ac4b965a2e2a06fca30e4593dd1a44e0c68153d8233c1b60c9823319415bf49395cb425f80f5ee0f214611be7d41390234c7bc17559822ebda6391da89226eda451ee9e7bc24f7ed50c8c77bb7f33e0ff748b9571472af881f8dc4467f93e407bbd2bf8ec88f7874915e02c8f8f3343716e72e13f61430ec2655fb862641e12a220a080a99e7080abc8f6306f62ca2a40a6f9d50d5f1f90766c5ca58b11c90e392198c076eb978ccab902c7ae858320a2a0a5a54de1277a6071cf9eff79398c3c9ec126d90796b74f81f5863125183730c04c46b8171d54ebbb6716d589bd06b759c4aaed85316f7f166a6817a06dc92d86aed0443fbc18beae3118d442e6ef8545528858b0e65753634e4de7dd1c8b58b4842b9af094b8378749f7e1b21c25cd40a240c57ef5addff02e67f88af1a7d9168b5063f7b0125e63358ff0621f02dced2f59e1eead0051c2d0c59975e8473b9636db6116435615c7a529e1522fb15b9d0bf57e3ef3f4b8f8bc84b153e2ab9bf0b05e56dbabc5583a48f2781de3cc61fac716883c677b601d82b783251b2a60324c3705cf511cde99335f56c66fe4c85c3a8c0d2331daac84d078fb21ae012f6af7747863f1267be6659f04f61c992086c884596dbe9571e8336825814750904a11d0f2fb96f0591154db5f2c5ac1bff96630a4db986059b0b3ce44fd55cda58ab06ef7835b94a817cde6fd284fd11569030dd4b6727b9280a6d2bcd3fc47498fe88f42faa8f9d6bd66c7dfb334b0fa52eb55780a36bbefbd9f5154839504c7fc4007642bd5d6f699bfcc97fef8d8b9c71f463d08c8b71b1e38e1694c185d0e6c6361ccdf2fd7cf45dc0c25ee7f0489d042dcb1320becea5c36b371c511cb248a1eebf8452ef1549e1d6f90048d55092bd706b0420397a47235389756457a409f35a5600a20693bac0189d243e78ac94a0e054424d880af01ffbf6ce51ede58d90a6c3d8b7cf391a272d44b886cb32d54da12f9c774aa74f1cafbbda224dd95fcd11bb44b6e90c8f3ae02b9c5b411d5193a618a4e1706c7885872b10a7e9de1edfa54cfc99fe1256b2380010b3e4721bd93f1236180b3b29f3a9b8cf40c66f553b9e5fed00d3c31344c900a16818ae29de04aa8eac66f7c05a5a57f59577d324d518e966aaafbd0da95f98beacad3dfa41ea3ee703b4193add18b47ef5d6d78c97b8db98d85ff43d0af5b45f055db80c79b64b3f55c05420fb8049c50180419dcd365ccac2002cb7cb706128cf8357fbda7d7cf4b7efbccd914b404ff098ad91241917868e0d6e9bccbe77339a1297d456a5b4808611a0db1ec22a89d9a4a5bd3a4f250039318c872dbe0a792997cb8c142b5d5d0a91fddfcec62f715b436c6a90813d73248b863ca36b7c4c7b74ad40b8ccf60b1e6302a04a695b6ef6f38a3a161d417e563e7c1aad0d72ba7dc98eac3d93834471ccec14c97dbd42200771e27c073b33991b5375284c91883f4c8d000a3465521e6d64c8dcd71adce938271349dbcf12f4c3faaa6da1eb865462b069adf2b572e14ed8be4bf48ff7cb7d93da39deb0e5641ad372832d7592c4aa7e77b6b0fa0d1e3e5549f20cc7ae4cbed77866f1b6e3d83dea3b6ab818b3c415eeaa60afee0d49455ff7f660a6825b32b26f97da57c2ab491f08937efdd157ae6182ade638ef30fbeabead40cc35000f682b9dcc7f27527acd26a70cf03a6b10dfeb2169ffc03082294167fdc8aa20bd9996fc3c7683e8d953011bb5989e41e2e27cd8c813822b62e31045a324881a756c9c037bfe1471c1fd069b21fe0cef89223147ccac110419b47968d66ff73ce7ee688d5af092272678cb3828e7bc274ecb708fe89b390fd68c390bae75d361ed02cf96512daa8c95bc3dc2b0149bded0b6ba54c3a5bd823419dbe7c1c9ec7a6afd6db6d9c43d10fb1918cffb4415c0aec324c1aac9d3301b89c0d1c8f3835bf017cfe3002a648ac105bea9d21aac70bf10afc0d64669031773d9730157fee0291b663e5d2a4d717d9cd3b520f9180c1b5b36c77bfa69b06b1e48b94f43dd552da4bfdadf162f19e5ffd843f2303196494f64059ab5d5c7a331aa4a3b7b59ea2d4843ecffb2c2790c181a9dddbc2b049965d4d26057b219144777c1787f7d06520702f1ba5b0f2ab1de2a8620ab25669b28976551f4560e150ec4753d8d6c325585989a869c2928a340fe6d7ba7969e0bd3db60dbecc9b506a0955793f31812773d744412842b70687e7805cf49ace87a43b28fae27f911fdab1ef86acd4803137ae21584ac1a1b85f258f75f44129021d915abde877b38b69bcfaacac4519f8351c2b05ea16e58ce3d8b0621fb77a85a64d06b389d3ca9260f9c72a5fd4cc52eb63ba26bc88d474380659895d2c137f021f34e2580f7c3796d39553ed4bb45ea28b721cfd3b09fff0227b339ce5b8788e34de88ba4289e012b408f0fae396d373ba03a78b8117f602b9e91c948b23fd0274ae8515c56532a63ca3b67ccc4b5feddc02042bd4c83e24abba509e35c5e8009bd0395194b5b4299d4af58f7c11d9a1a952de3986773d850f1ab9b10b492c4199acb7d131eccbec2f85a4fdd26b62161e84ce4dc9bc18c87b3485ba421574131d0efedd0545d1384458e78dc60d51e290d909e379f9d4cbe009c864baf107c2d040851f71dd41a0b877f0527dbf66c850719a3a285daa99cf6f79426cc177f5d632e0faeadd6835087723b2c5291b8f37320be84ca141759c7f86f2a54f01c730d18557f9d5fb56affdfa2f64598487cb35a1aa3226cebf806869a814273a6f9744905e38013df64502a0271a76a2054f24bbae5f6d8b6498b4da1dbb8a46902ab841a263c6648c78c2ba8bd30cabb674c2ab3d2972f0963800c1503b6f966e3f67d49893a9a561233ceb6cd8b800504c35d0f3c072c6222008b2732461a4b3debce54cbedf9c5f270bd186480c6d0608b6552c2afd8fb3484b083b3f097842ea7aa144e22f76c9388cc473e1ceed7f7c81afa08c83186dffadd38033c37ed35bfb52864c1d70ce611fe2edbeda960e7ada5a5f2f8ce0127ecb77338a40fa7bb90f9e9d91421700446ee960a203d66ad6004985eaedca0c1ca656742e8329fe3c8f84d8df8f3b3d712a7d9b442f19158c5d7dd738dd7399385ee575a9f914cc88cd2a6bb5c76f702b2b8cc3f743808a600fc7d4e6fddae47280e68503cae3412d5e474c85edd6577d27c58063c320395ae1b99a99a3b5765a397fe8f1e63a902b3d24f297faef9c030571544225f7292ca3d9e243f399c6ff96969944d5d943485a634680616fdd76819d2ed8c036c6ee54ce7bd29b695cb4d2a7993b847283d1e616eeab680cfa528f621f4133750ab926c67a352c4bce1be67273805712e41de7d76febcb1376ddc3b1cf60198430cdf5fe50e0d244aceaf42bc52bb66d00791117de91f1474a8eef61917051706aaa1e9ac9ce2ff4e0c9e1a57b2f4da647567f656f0b1534688c024a8e473d742769911356fe017ce8eb7a6783e2718e8b47edae2af371543422b912ef329f471afbedbea73f1051210f480fa3aaab57b352d2b2424a60e1e3450cbb62f2628146d798546a823efa580f3b00e503a2faa7ad29fe1ea1ca8902bb35a240e1e6a3e687a85c34112198ab78d04a6979af2ca8559dee10f75870575bbaabb802e422d0e5a297c0e28c470a8fdee76349952928ace9db4dff320b109fe7d2d2af0386572a420dc57ee221f98fc2310e031e6e9addff182923c0d5b4c8e70997fe63563d72accf0247b27f1d034570f7994bc46fab7a8d218348a02312e25f82bdff712fef74d92dda30a07ab4ac6e231358f8e626ad46d27599111a26cf4bcc0358160d0930a6648e8660b45317d50811c1cb217586076c474b3aa4625a27bfc9f66b5bf79ea5b7111dde8fc1b3d927bec41d802f88544da2b40f3b62f057a283cab15a027d969248ca884a9bacb6ecf45a7be64b5db278e7137b62e098e73b919e2f53f78ce7b001d21cfaa01f8f4a9ac925980cc91e2721481f1f372c454d31aa3faeee75882d97150faf0274e9d014a1c2bf7c57d5e4a53d8fde21e720d0b818c9ecc00fb19a2e2ec28110e30b0fde2c58cc8c34e44d06eef98ef16899a22c70d28d55939b4bfa77589fa85aec7d08f0445b5c0e8c7f37687ee3a4be81ff1e92f7ffe5ed2d364a73ca6e1f04484886266010f9f4c81217b6d1ebf8cd3c6f2b4d600c77f650100aeeee963b762f55af9196ff0824d6b1abaecc996266488b4e0aaef43bb5c146da66c68842f833bbf58c164729f7a09bbb0fa6c21bbd12ba43d0382008ea8bc15bb1ab31769c357f15f70dd7f76a375ca02470334be564a1d2541fdb062d56dec52861cd31d8b0ffa7d88c2fa9b57a76780848d0d1e5ba08097ef9612482caab2fd305cfca844f0cdf2a8b71595e6d5f1cee20d08c43e8e1398156ea4be3bbd8c1d002043436f1a06ea71907ecd5f023c550c74d6635f949e0a1d4b8758dcd48ec60e5b617f08ab1e288e5f1b1098fa3110432e54be31871f602885562387a4d66ea125f84efb3341ab9b74d40ee8bc2f000adb8d0e7769b29d32c51c482505e9ee261e2adb90d5074d4b10c9f527ffa40871688c4f85b6f852d92cb44b9133766f945e6bb1deebf737c4652bc064ef69c5473350600076480055405a4724a590b17123ed69133280efa3546865c2409ec7c5381052d00eced19c5ac4d17ca4d282eeaf7202bc1a7cf76d57a2212955dc197d1ae9c0cad3f76445e0460bd8cbb1302681877436e0a1ec879fde03ad45ed5baf0d89c4ce14898fee94530657d59fa80f25e199317eeb3f7babd737d301662ebad306f1f02b745d99fe57fd3c764d5a2cd05915ec7a60dd2d205f552388aac2b74081ba685a8ee863988b457b3b6d1afe02fc2aeadc4dd6452b012e4f7730fbff4b41f1f12ae87221b67c9e0c55be603a48e9ca185c2547caced3875478c5b8a04d3da93fe27262b894c881138df0731854b3178b84b9b1f215fa2b0df81ebaeebb5a2b9e033f6a78e3f955ba9ab650f92bcb2590f93335fa6e5c340893794135e6f29c1e17f64a5ddd1e614acbecb516d415cea252738ded7a911cb1b6d5cf74da5b73c37207b604e93b4c03b81acb302203598eaaa6f7105e015ec48ceebbf0c6020c78bba0a241a46d7f6150c659311d6a881e2272efe7b6a388a48fd2a51000372fdbf4a024ece1f4d34aa864ba07d19d02b241e71e7e41db10f32e9dc876fd79c22df5151a9525e3c0889eed5e086968a33d74e4f71af0390dd85a5156501e3ca6f67f6c93f39cdd2931bfe98b187984287ea1e21f36252d1add9b0242fd240e909ffe8b158912c5ccdbf01ba3ba118debdccb02cbb4b1044668856c05906d4618b2fb8553d269dcbf9cf4413c7f2ca64b246c48932a2a5d9edfc684c3ddcfb6ba9608b090386a42c9630c6ad05f0d5316560a8eb6a01a0565cae346985e7c0b73dacf741542cd77961d1f8b9a972a0a47bf5fa33e081764efaeddabeba96c416c905ca1f0d517a6b13befd8d0f82ee117398b9111d46656e6662fab3488cc66bf05f76018da6f3e537fddd5fd437becb394910fd1bf65440e1c4bf4e9073783573a76193911994509db38d1901cf6f2678da904271d233820cbdc937b9fb873b8fe27c6962cbc6782cd2fc2f189557e7c5e3666c58f2dba8827025acba2e7abb68b3a443d8eed6b7b04bcd39d7698d72e25705035e6ba4e2d51587b577f36b196c6da1f60e95fbadad5006f472bbcbedc44a14bf338f099f0290b7fbfcc505bfba4c335becce253b7b9f28d3a9f1d69b808d123ef39d4b98bcae0b261dfe1963ab2aa03eb8d76ecd68c3076159ec4f12d4f55dbd9ee35bd5fb33e0cbbd881ad0801aa06e8c7dba4514a2468cf186e7ce8a8702afe3a63497ba67894b36ac95c4ded85adb3220cf1975505a519951366c5ab8bdacff440e47bdc3dfc2b4b0b7d48163d339ae6d321927ffea8e0ec7c3563f68df3a75e76aa6bb307c2cf98579c807355e654dd446047a7aa02e64853c876a7b4cf47b581684b67f8d3841b274cae1e09be629a9b540ff219725e5840714c4a799283f3b741459522152905488803d8413ee6f49f9196785b3050ab06969de6884ce4b29650531436effdd46ac4507286d11ecda6c21b5c27c0ad45d35961a49b3be84fb988e3dabda4dbdaca40a4a934acfbe76c0e03cf4facf0b51fe38da9df1fbfca849e36fdec12827ebc38a1f002e772059d416e250322023df6079abdadd5a2768432d3212e69ef402bd117646d3e6e158ca6cb828da73f3f1a81836a88e86566ae25e44443f2c4a344c366abb44dc6f9d6242b83e8a448c653225a0cf5a0d9373a5550d6de84292db9d3b4c8b2bfbcc818086334848dda8bacbfb78a42ac7ea1feefb460ac638d5e2448e6780e1d4703376db8c661a371f24c56ab3a20d8d63269f7152685c51a9436fd2a97325f393a634238e21e592b026f7189f2cd6dc130d7655d23d0edc037ea7ad4526e8c080935cac0d4e71802810246230618fde0296d226a58b883eef880d508f13b73055620fd5e72c59a33a9140e592c18d0e4775b17eb695ee85a4ee96df667411b964b31208a4217ea1d1c9e665a3189f8da66c41972992f9f772e21ff137ecf01e8264b62fc9c8543f468d8abf44f16c4a437a101d4b32d7b50849cb08394d63fd86aed8f491b4c2426ab383f8238927d4840f0ee9dd16c9466e8adbb9a397cecdf4d1df233cfb9fb96478a3b9a7a8c6f9a1d44968c8c135f0c8fea25385433a77fee5095d2108fab1c3f65550ec18bf72bf5804780ddf2efe827a7d7793ec298c9b653736bebd45348d44536681608013f7eb2d416df62c52f4c18fb53720de6892a5c1e45833d1c4dabc6d047bfff0030b7bf0a18993540afc81981ad4123e7a411cf1adc9ebeea08dfc5add4b3d4489a7b1612fc9baa1250d09f6bf53e2fcc2222ba34fc80cb37f2bba6b6ac9f72b9c3e147af06af0e7a8db90294ba80c820efad775a6387169d02b106196c354c17ff91fcbb953daa7baba16effd43fc0b66760fd4343eeaa6a2da83427683929cfb9e89b4846de637ddf5752d30a5a9ea493fc0f9a428f8c7a84b9d35e6769aab9c1f29bf160621212e63a8d729437028d52bf0ab5aa0635175e6f422cef114f4bb1c2e085bb92cabe45dfbe425238bbb6d68338bee8a748cc5f165b54b04dea083a778b466032601c11725af6453e3ecd8b6a69a0429df3eb3dc2222a6ca81c174a304a1933f3bdd7f7512d7ee5e60b46fb3c6fb3a9f313ff1a504a91522fddcd653a4f06b621bf584227f1eb89f1209e6651199d843f51b966bcf3ddf88bdbf6bb1400f3c616803c7e3d776a04dd86753053aca35956bb5466d2fe856075c85317dd6b43678e35e2bd770b560530b8c0ba88cbf9a20813f381a4ff9e4821f31012ec98218a1b2ebb29af0aa5b2219f0d94b6fe3335d22688be53c26208977cdcdd1c815db8109d01f599d1c5a060b0538a7e4be7a0f76d059533fedd349a61b27b67b67a9528fa0d1a4f4e32b0792336a1b39f811e6c01ae7d66a7d07bf8aa774966b0fe1e8492ee51c64708ea14043368705f176478644b8a8142af9eadbb16ecb4632e95094c8b910e82104313a901a310be191ca28140d2d063953e4dee451b873ce89ac13b0d661698352caf1ce4db0ba8f865119423cdec549a02a9ac0d3dbe087796a6c13079236232661b346fc4efc84215129d703cd5172cf260b709cd5dfa8435aea4254aee155661b21fc92f194714e7176fef89b78329496ed7decc22bebfd76a1965531f1849b0b7cee401c4162a3a236279f8ef134e2758623a930faf9df702180f7e55adae6eea8dcd12e9868a3fc2aaaa4e3ad89ee16419cbc39bb904c38337786e781f76f2084e7f8e8d0f06264d047323e78b941fce7a940fc60b94b294c7d40e49627efb4c337fef0de672a78b5e653fa7134b1a5a05d0e140089cc2157a31855a5eab99e0465976742362d7525c6b4cf0f895476e321ae7e0495e849419cefebb77e3eac95a2213ff450d90374580526c22a5a40772828ba5d065bd4bd3425d7bf9348314722a0232629810fabd3d7433fdf1bb405c4499c5ed090bc9db5636dfadbae3c2c115835766f6c8ab7663f2150c0ddf786065ebaf404b7578b1eca7cd074a8351a1974a392682fb0feae53000df2804af578a93fd52b0d24a3194301190e0840bc1482f089fec79de18b1a39ca33d5b654e17b89536720e180f793674b06aac56867cfc4742c2e3431edf9e4c2d3ace1ac8e06343e05369f90d53be40f17cc0c88ac5eb83dc4ff5148e30f6994657efbbcd3fab7121f50bf2605a01271cfe5b1b6ef3839791b9e21a33dd6d18a50579977322ffe040fb859304ae233c7a61a8cf165b7c5880d473e27024c9f46be2cebfb661f9c842cc5fa1de4e7d4200d5358b3d69f45417389b517ec5649708516e2aa0089025a00a494b7dbc310a8c2d99029e27ae798de67f9c3bd26d93e060a64b92ca67b3eb14f3ed47ce333c4eec036b22e26d63f831ede85ff0cd0242fe2f7fba29fe0e6ac907b2328cb600d011575c125894e8bd1235c5c6a8bd5372aaf3377bd0b59fa9ea2b898d0c0043e5329ed7e9698bcee1865171a8c1e2bd0d879f12cc3c6e07e99bba77f5fa754c9adc4301a490c8fa47e0fc425077a47fdddee35e1a91596e88f319b5fff838d2984d5a8cd5d6c69e653e3b11a20a513a6a4b9c986e41ff44689de155a049dbf03a534a3e8198e1fb53c50e4bb40e971ea1122d2d42d98a6cc81dcff7c64caa317307248d53ba931f50cf52b2453877cf4c42b3fe9406b924c2825ddfe54a3d08abf227751641d5b8de02cc7ef32c8cfe6a01df6a455c5be5db2828a545d904050d1aee1f675c1af283f1a8f729f0eea00e79027d90f2ee72aae8d097897663b39d13320c4f758f1c4d55b4a12fe904414a78fd91ac9bf8e247f7588f1101dbc72bde9af0af4d8e07ebeb9dc0a154be80f60de2631c90a1ac6a841faaaeccca19bd1ee704ab3519f9d5316fcd44bcbc56b0311bac159e6174f1dbae9bcf37d30517db68c9398b1aaba0c7b2056cf05978091bf6888ff2f1d48d0a2faecb10cfe276891a56eb48dede8fb193a507d97e4b15b1f5e3af14454c37c9878f89e80390cf5cba5ac5160d0a402d39a44dd405f7661bcf7703b4e3b716c07c8353e9750772cb2327b7129d795f590bad2cc1cbf73fbb03b3efc4e03fd69bdc38b0d6187ee7d3c51c721769c22efec27432883597b89321d35fc69988a0caef027c5c3e1690bfc207bd1e3daa09236290b0cf2660fd1a8c219d3f935eedeb2b2cf48d62da62b362b2f8ccd93b62c6f9a3a0dd999f3714a995d4d873f5c3289070a95c39b495fb0767164c04db567dd8c10334cd30145c3be9b4549a22371c2d994903953043d38dfded865df7bfe606ae1bc6a5616d60c5262a0bb5f79e52bafb7d9849ca2869f1563e15cbc5f2b68bec892aa371c9d69b4fac49948eed6a8c017d1ee225380eb1ccaf87f4d87cc57202128a6090182a7072a86743a4641b872cabe016cb6d8bda3c65373bfc7546ded5c0da5860926eae4fd87991f48d7486c812fc7e6ea08895d572011c9936bf38af1ced2d271c4679557e861b2343e0f50dfaf5eaa458e9394a5a56d7c62a9d89e0c39f82c9928d7164744366a9301609444b47f1f6f1f78f4534fbe7f40b94beb016faf12c1082182e61514a13b8c739c2efeec60d2396e696062166f4066873d75358a73b356cfba4dc4b34321eb9a30c7f79fd427d04d1653211c37504370c1e44071e972a36d99038d6aa1134e36562236f3608839464a6367166607b7991b178f1b137ac4eaa9b21bb813ea4284fcd79d60bc312d693d4b03d99bfe36a90ed43c7ae38f0d66a17dc2d4afeb9b55be1febfb33579815f8d03f1ee7dfede1ac28c5389e237634524e7aec8cde3c2e46b14dba0356f51135616b923b6ecaa8e8950c6141d92b7881d97c44c6a89a256004a5f80884da3e74bac91753720e4e3443dc0053a26db1999f640cc284377e44060e87878e94387f0ca04a27be6844767002a59904acab3a737ef352cadf37e6a6d83c5b0e6b82439ccfcb028ea629d917eb87632a3be317688cdda9cb39853e5548d68164228c62451cfb172dbb76289e798eafe928e8d198cbbe17c771d6c12eeb0acd0829ad51d339d4f4e9244f59061e94de5da80fa71d86af17b773a6a4c8cc610b906f25a64f43638072ac07229f19bb23afd421321722e8fa2cc8b580bc24dc9f9dbb2c9cb6b0e0f41daf574467389dad8c672cafa729d1051f4b39b47e6c9e6eeb104e0c1e57cb9414390825fe0654d6dad7d6a8858a34f82f326d47178178a560fdb2d1775a42b0fba6581463832192a461ff4eb4b7b75c9334a3885faa3be32caa65a0b44dcb332b1bf7187717cbef760848b4288c00d2b44282468efeaeb99022161a629afc04b89c7b99603c235d7384e81d7a90cb9f415a62308dc6ea0f62a499c74ba2132018ee79947a055be7089540cfab255660dbc01cb4e963557c30a2b3fbec7b94bfc41930213186275201f552a8f9c3cbcade42630148ba04a2be63443ed8dd9691df2f90a99c270ccd2721d176d05fbb6153e7749e99256e7fb3c797c9140d91d9ca480b483cb1665587643a6f32a101dae4fb815a46f7a72aa69108b98e36ef3bb52bc9c88d69d034e14dbccb322ec12b8142b522ef2126dbfbd2a5439e673d43a107f9f3db1c80e672ab0c005585f75614b25f22b44a3d728263cdf8c31fce4ada3f0de40adbcc0a2622eeeb3209740505c603fcc67f3c3a2b91d11ebe56d6277674bf59e1486bfb0d2644c963e9f3a8a1ee061367d396900e0089e0ff89b6a0c5b80a11b1edd0f39bd6155491488b802e563b80bfcd38d8dd27fed3bfaaa1e37d3d22ff3746dbabd71f25502883f51e073515629b7ba06f3fa66217bcbe2be6b9ff23f83d259e835514a904dcf373c7cda0eac566a35d6d9951cd265da7e622c207190c510e8476afed19d489e5a3ceb1fd99df6e14cc7e00b66819a7ccab32d28b0b33217b1e9cf5c51d3537e8c695d07ed656524ec389bbe482a428337098f0c282f47d62e2d546058d03d2a52eaada3a0f78e0208a4f29b3506e02ce4bbd1c3d03d311d781b8d4969fea85992ba10d54fcda007bd8f2526f503e372b1db9d7a1d59562573e878b9ae84feb5c86d75f170f32d4f171b4db668ef0

3.2. POST Request

curl -i -X POST -H 'Accept: application/json' http://localhost:9582/api/network/message -d @README_example.msg

3.2. POST Response

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Mon, 07 Aug 2023 02:43:35 GMT
Content-Length: 23

success: handle message

4. /api/config/settings

4.1. GET Request

curl -i -X GET -H 'Accept: application/json' http://localhost:9582/api/config/settings

4.1. GET Response

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"}