Storage server for Oxen Service Nodes
Go to file
Jason Rhinelander e98489e3eb
Merge pull request #408 from oxen-io/dev
OxenMQ rename update
2021-01-18 16:50:01 -04:00
.github/ISSUE_TEMPLATE Update issue templates 2019-04-17 13:46:28 +10:00
.vscode check the difficulty every 10 mins 2019-06-06 17:13:17 +10:00
cmake Fix archive naming for tagged commits 2021-01-18 13:28:57 -04:00
common LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
contrib Add drone CI 2021-01-13 15:20:23 -04:00
crypto LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
httpserver LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
pow LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
storage Add static build capability to cmake 2021-01-13 15:19:22 -04:00
unit_test LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
utils LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
vendors LokiMQ -> OxenMQ rename (and update to 1.2.3) 2021-01-18 15:58:16 -04:00
.clang-format Run clang-format 2019-03-19 14:47:55 +11:00
.dockerignore docker support 2019-04-26 10:35:05 +00:00
.drone.jsonnet Add drone CI 2021-01-13 15:20:23 -04:00
.gitignore Ignore swapfiles and reject localhost binding 2019-07-25 13:12:44 +10:00
.gitmodules Replace embedded nlohmann with updated submodule 2021-01-05 17:27:32 -04:00
CMakeLists.txt Add strip and create_archive targets for release distribution 2021-01-13 15:20:23 -04:00
Dockerfile Update dockerfile 2020-09-29 15:40:14 +10:00
LICENSE Add MIT license 2018-11-16 02:04:02 +11:00
Makefile run clang-format 2020-09-22 12:47:03 +10:00
mock_lokid.py Always strip the 05 from start of client request pubkeys 2019-03-28 15:33:41 +11:00
README.md Add static build capability to cmake 2021-01-13 15:19:22 -04:00

loki-storage-server

Storage server for Loki Service Nodes

Requirements:

  • Boost >= 1.66 (for boost.beast)
  • OpenSSL >= 1.1.1a (for X25519 curves)
  • sodium >= 1.0.17 (for ed25119 to curve25519 conversion)

You can, however, download and build static versions these dependencies as part of the build by adding the -DBUILD_STATIC_DEPS=ON option to cmake.

Can use RelWithDebInfo instead of Release if you want to include debug symbols to provide developers with valueable core dumps from crashes. Also make sure you don't have an older (than 4.3.0) libzmq header in /usr/local/include, if so please install a new version.

git submodule update --init --recursive
mkdir build && cd build
cmake -DDISABLE_SNODE_SIGNATURE=OFF -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
./loki-storage 0.0.0.0 8080

The paths for Boost and OpenSSL can be specified by exporting the variables in the terminal before running make:

export OPENSSL_ROOT_DIR = ...
export BOOST_ROOT= ...

Then using something like Postman (https://www.getpostman.com/) you can hit the API:

post data

HTTP POST http://127.0.0.1/store
body: "hello world"
headers:
- X-Loki-recipient: "mypubkey"
- X-Loki-ttl: "86400"
- X-Loki-timestamp: "1540860811000"
- X-Loki-pow-nonce: "xxxx..."

get data

HTTP GET http://127.0.0.1/retrieve
headers:
- X-Loki-recipient: "mypubkey"
- X-Loki-last-hash: "" (optional)

unit tests

mkdir build_test
cd build_test
cmake ../unit_test -DBOOST_ROOT="path to boost" -DOPENSSL_ROOT_DIR="path to openssl"
cmake --build .
./Test --log_level=all