All Projects → oxen-io → oxen-storage-server

oxen-io / oxen-storage-server

Licence: MIT License
Storage server for Oxen Service Nodes

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
Jsonnet
166 projects
Dockerfile
14818 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to oxen-storage-server

Turms
The world's most advanced open source instant messaging engine for 100K~10M concurrent users https://turms-im.github.io/docs
Stars: ✭ 97 (+410.53%)
Mutual labels:  storage, distributed
Storj
Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure.
Stars: ✭ 1,278 (+6626.32%)
Mutual labels:  storage, distributed
Kvpbase
Scalable, simple RESTful object storage platform, written in C#
Stars: ✭ 43 (+126.32%)
Mutual labels:  storage, http-server
DBMSology
The Paper List on Design and Implmentation of System Software
Stars: ✭ 67 (+252.63%)
Mutual labels:  storage, distributed
Sia
Blockchain-based marketplace for file storage. Project has moved to GitLab: https://gitlab.com/NebulousLabs/Sia
Stars: ✭ 2,731 (+14273.68%)
Mutual labels:  storage, distributed
Foundatio
Pluggable foundation blocks for building distributed apps.
Stars: ✭ 1,365 (+7084.21%)
Mutual labels:  storage, distributed
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+1810.53%)
Mutual labels:  storage, distributed
Bojack
🐴 The unreliable key-value store
Stars: ✭ 101 (+431.58%)
Mutual labels:  storage, distributed
Cherry-Node
Cherry Network's node implemented in Rust
Stars: ✭ 72 (+278.95%)
Mutual labels:  storage, distributed
blobit
BlobIt - a Distributed Large Object Storage
Stars: ✭ 29 (+52.63%)
Mutual labels:  storage, distributed
pvc-autoresizer
Auto-resize PersistentVolumeClaim objects based on Prometheus metrics
Stars: ✭ 124 (+552.63%)
Mutual labels:  storage
kog
🌶 A simple Kotlin web framework inspired by Clojure's Ring.
Stars: ✭ 41 (+115.79%)
Mutual labels:  http-server
DTC
DTC is a high performance Distributed Table Cache system designed by JD.com that offering hotspot data cache for databases in order to reduce pressure of database and improve QPS.
Stars: ✭ 21 (+10.53%)
Mutual labels:  storage
leafserver
🍃A high performance distributed unique ID generation system
Stars: ✭ 31 (+63.16%)
Mutual labels:  distributed
v6d
vineyard (v6d): an in-memory immutable data manager. (Project under CNCF)
Stars: ✭ 557 (+2831.58%)
Mutual labels:  distributed
selectel-storage-php-class
PHP class for Selectel storage
Stars: ✭ 42 (+121.05%)
Mutual labels:  storage
cs
开箱即用的基于命令的消息处理框架,让 websocket 和 tcp 开发就像 http 那样简单
Stars: ✭ 19 (+0%)
Mutual labels:  http-server
Less3
Less3 is an S3-compatible object storage server that runs on your laptop, servers, just about anywhere!
Stars: ✭ 16 (-15.79%)
Mutual labels:  storage
todo-list
TodoList using Ionic2/3 & Firebase: * PWA * SSO Google plus. * Share list via QRcode. * Upload image from Camera or Storage. * Speech Recognition.
Stars: ✭ 18 (-5.26%)
Mutual labels:  storage
memo
Android processing and secured library for managing SharedPreferences as key-value elements efficiently and structurally.
Stars: ✭ 18 (-5.26%)
Mutual labels:  storage

Oxen-storage-server

Storage server for Oxen Service Nodes

Requirements:

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

You can, however, download and build static versions these dependencies (other than autoconf) 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 .
./oxen-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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].