Skip to content

Decentr-net/cerberus

Repository files navigation

Cerberus

img img img

Cerberus is a Decentr oracle. Cerberus stores and validates PDV (private data value).

cerberusd

cerberusd provides http API to pdv storing functionality. It receives and validates user PDV and sends it to SQS queue.

Parameters

CLI param Environment var Default Description
http.host HTTP_HOST 0.0.0.0 host to bind server
http.port HTTP_PORT 8080 port to listen
http.max-body-size HTTP_MAX_BODY_SIZE 8000000 max requests' body size in bytes
postgres POSTGRES host=localhost port=5432 user=postgres password=root sslmode=disable postgres dsn
postgres.max_open_connections POSTGRES_MAX_OPEN_CONNECTIONS 0 postgres maximal open connections count, 0 means unlimited
postgres.max_idle_connections POSTGRES_MAX_IDLE_CONNECTIONS 5 postgres maximal idle connections count
postgres.migrations POSTGRES_MIGRATIONS /migrations/postgres postgres migrations directory
s3.endpoint S3_ENDPOINT localhost:9000 s3 storage endpoint
s3.region S3_REGION s3 storage region
s3.access-key-id S3_ACCESS_KEY_ID Access KeyID for S3 storage
s3.secret-access-key S3_SECRET_ACCESS_KEY Secret Key for S3 storage
s3.use-ssl S3_USE_SSL false do use ssl for S3 storage connection?
s3.bucket S3_BUCKET cerberus bucket name for S3 storage
sqs.region SQS_REGION sqs region
sqs.access-key-id SQS_ACCESS_KEY_ID access key id for SQS
sqs.secret-access-key SQS_SECRET_ACCESS_KEY secret access key for SQS
sqs.queue SQS_QUEUE testnet SQS queue name
save-pdv-throttle-period SAVE_PDV_THROTTLE_PERIOD 10m how often the user can send PDV to save
reward-map-config REWARD_MAP_CONFIG configs/rewards.yml path to yaml config with pdv rewards
min-pdv-count MIN_PDV_COUNT 100 minimal count of pdv to save
max-pdv-count MAX_PDV_COUNT 100 maximal count of pdv to save
encrypt-key ENCRYPT_KEY private key for data encryption in hex
sentry.dsn SENTRY_DSN sentry dsn
log.level LOG_LEVEL info level of logger (debug,info,warn,error)
pdv-rewards.pool-size PDV_REWARDS_POOL_SIZE 100000000000 PDV rewards (uDEC)
pdv-rewards.interval PDV_REWARDS_INTERVAL 720h how often to pay PDV rewards
hades.url HADES_URL Hades service url

processord

processord receives PDVs from SQS, rewards users and stores data into FileStorage

Parameters

CLI param Environment var Default Description
http.host HTTP_HOST 0.0.0.0 host to bind server
http.port HTTP_PORT 8080 port to listen
postgres POSTGRES host=localhost port=5432 user=postgres password=root sslmode=disable postgres dsn
postgres.max_open_connections POSTGRES_MAX_OPEN_CONNECTIONS 0 postgres maximal open connections count, 0 means unlimited
postgres.max_idle_connections POSTGRES_MAX_IDLE_CONNECTIONS 5 postgres maximal idle connections count
postgres.migrations POSTGRES_MIGRATIONS /migrations/postgres postgres migrations directory
s3.endpoint S3_ENDPOINT localhost:9000 s3 storage endpoint
s3.region S3_REGION s3 storage region
s3.access-key-id S3_ACCESS_KEY_ID Access KeyID for S3 storage
s3.secret-access-key S3_SECRET_ACCESS_KEY Secret Key for S3 storage
s3.use-ssl S3_USE_SSL false do use ssl for S3 storage connection?
s3.bucket S3_BUCKET cerberus bucket name for S3 storage
sqs.region SQS_REGION sqs region
sqs.access-key-id SQS_ACCESS_KEY_ID access key id for SQS
sqs.secret-access-key SQS_SECRET_ACCESS_KEY secret access key for SQS
sqs.queue SQS_QUEUE testnet SQS queue name
blockchain.node BLOCKCHAIN_NODE http://zeus.testnet.decentr.xyz:26657 decentr node address
blockchain.from BLOCKCHAIN_FROM decentr account name to send stakes
blockchain.tx_memo BLOCKCHAIN_TX_MEMO decentr tx's memo
blockchain.chain_id BLOCKCHAIN_CHAIN_ID testnet decentr chain id
blockchain.client_home BLOCKCHAIN_CLIENT_HOME ~/.decentrcli decentrcli home directory
blockchain.keyring_backend BLOCKCHAIN_KEYRING_BACKEND test decentrcli keyring backend
blockchain.keyring_prompt_input BLOCKCHAIN_KEYRING_PROMPT_INPUT decentrcli keyring prompt input
blockchain.gas BLOCKCHAIN_GAS 10 gas amount
blockchain.fee BLOCKCHAIN_FEE 1udec transaction fee
sentry.dsn SENTRY_DSN sentry dsn
log.level LOG_LEVEL info level of logger (debug,info,warn,error)

rewardsd

rewardsd send PDV rewards

Parameters

CLI param Environment var Default Description
postgres POSTGRES host=localhost port=5432 user=postgres password=root sslmode=disable postgres dsn
postgres.max_open_connections POSTGRES_MAX_OPEN_CONNECTIONS 0 postgres maximal open connections count, 0 means unlimited
postgres.max_idle_connections POSTGRES_MAX_IDLE_CONNECTIONS 5 postgres maximal idle connections count
postgres.migrations POSTGRES_MIGRATIONS /migrations/postgres postgres migrations directory
blockchain.node BLOCKCHAIN_NODE http://zeus.testnet.decentr.xyz:26657 decentr node address
blockchain.from BLOCKCHAIN_FROM decentr account name to send stakes
blockchain.tx_memo BLOCKCHAIN_TX_MEMO decentr tx's memo
blockchain.chain_id BLOCKCHAIN_CHAIN_ID testnet decentr chain id
blockchain.client_home BLOCKCHAIN_CLIENT_HOME ~/.decentrcli decentrcli home directory
blockchain.keyring_backend BLOCKCHAIN_KEYRING_BACKEND test decentrcli keyring backend
blockchain.keyring_prompt_input BLOCKCHAIN_KEYRING_PROMPT_INPUT decentrcli keyring prompt input
blockchain.gas BLOCKCHAIN_GAS 10 gas amount
blockchain.fee BLOCKCHAIN_FEE 1udec transaction fee
sentry.dsn SENTRY_DSN sentry dsn
log.level LOG_LEVEL info level of logger (debug,info,warn,error)
pdv-rewards.pool-size PDV_REWARDS_POOL_SIZE 100000000000 PDV rewards (uDEC)
pdv-rewards.interval PDV_REWARDS_INTERVAL 720h how often to pay PDV rewards

syncd

syncd binary listens to blockchain and reacts on operations/ResetAccount message.

Parameters

CLI param Environment var Default Description
blockchain.node BLOCKCHAIN_NODE zeus.testnet.decentr.xyz:9090 true
blockchain.timeout BLOCKCHAIN_TIMEOUT 5s true
blockchain.retry_interval BLOCKCHAIN_RETRY_INTERVAL 2s true
blockchain.last_block_retry_interval BLOCKCHAIN_LAST_BLOCK_RETRY_INTERVAL 1s true
postgres POSTGRES host=localhost port=5432 user=postgres password=root sslmode=disable postgres dsn
postgres.max_open_connections POSTGRES_MAX_OPEN_CONNECTIONS 0 postgres maximal open connections count, 0 means unlimited
postgres.max_idle_connections POSTGRES_MAX_IDLE_CONNECTIONS 5 postgres maximal idle connections count
postgres.migrations POSTGRES_MIGRATIONS /migrations/postgres postgres migrations directory
s3.endpoint S3_ENDPOINT localhost:9000 s3 storage endpoint
s3.region S3_REGION s3 storage region
s3.access-key-id S3_ACCESS_KEY_ID Access KeyID for S3 storage
s3.secret-access-key S3_SECRET_ACCESS_KEY Secret Key for S3 storage
s3.use-ssl S3_USE_SSL false do use ssl for S3 storage connection?
s3.bucket S3_BUCKET cerberus bucket name for S3 storage
sentry.dsn SENTRY_DSN sentry dsn
log.level LOG_LEVEL info level of logger (debug,info,warn,error)

Development

Makefile

Update vendors

Use make vendor

Install required for development tools

You can check all tools existence with make check-all or force installing them with make install-all

golangci-lint 1.29.0

Use make install-linter

swagger v0.25.0

Use make install-swagger

gomock v1.4.3

Use make install-mockgen

Build docker image

Use make image to build local docker image named cerberus-local

Build binary

Use make build to build for your OS or use make linux to build for linux(used in make image)

Run tests

Use make test to run tests. Also you can run tests with integration tag with make fulltest

About

A storage service for users' private data

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages