Storage server for Oxen Service Nodes
Find a file
2019-06-06 17:13:17 +10: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
contrib Missing files 2019-03-04 11:27:41 +11:00
crypto use keccak1600 in signatures 2019-05-21 12:22:37 +10:00
external use ports instead of snode addresses for testing 2019-03-22 10:54:25 +11:00
httpserver check the difficulty every 10 mins 2019-06-06 17:13:17 +10:00
pow Initial loading of PoW difficulty 2019-06-06 17:13:17 +10:00
storage Limit client retrieve request to 10 messages at a time 2019-05-15 11:20:53 +10:00
unit_test Initial loading of PoW difficulty 2019-06-06 17:13:17 +10:00
utils add responding to message tests, retrying if necessary 2019-05-10 15:47:26 +10:00
vendors use keccak1600 in signatures 2019-05-21 12:22:37 +10: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
.gitignore Add deps to gitignore 2019-05-10 02:02:22 +10:00
.travis.yml Build on travis CI 2019-04-16 09:30:27 +10:00
CMakeLists.txt Print build info at start up 2019-05-09 15:05:41 +10:00
Dockerfile update binary path 2019-04-29 15:31:17 -07:00
install-deps-linux.sh Build on travis CI 2019-04-16 09:30:27 +10:00
LICENSE Add MIT license 2018-11-16 02:04:02 +11:00
Makefile Token Bucket rate-limiting for snode to snode requests 2019-05-27 16:06:49 +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 Simplify build flow with a top-level makefile and cmakelist 2019-04-09 10:25:12 +10: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 (for ed25119 to curve25519 conversion)
make
./httpserver 127.0.0.1 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