crypdex / blackbox Goto Github PK
View Code? Open in Web Editor NEWAn ARM-first, pluggable framework for multi-chain deployments.
Home Page: https://crypdex.github.io/blackbox
An ARM-first, pluggable framework for multi-chain deployments.
Home Page: https://crypdex.github.io/blackbox
It currently is not totally clear that blackbox.yml
is just Docker Compose. You may add all your own services there.
All chains have testnet environments of various flavors. The service definitions should support networks other that mainnet.
Now that config files are being generated, we need a way to manually manage config files for specific services.
When placing an order using the Sparkswap broker, user occasionally will get a TCP Read failed
from the gRPC call to LND. This issue does not seem to arise from Sparkswap's stock install on x86.
v0.1.30
v0.6.2-beta
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | info: Request received: [OrderService:createBlockOrder] {"timestamp":"2019-05-16T14:20:16.861Z"}
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | info: Getting all block orders for market: BTC/LTC {"timestamp":"2019-05-16T14:20:16.869Z"}
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | info: Retrieving best priced from ASK up to 10000 {"timestamp":"2019-05-16T14:20:17.233Z"}
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | D0516 14:20:17.322003207 38 dns_resolver.cc:275] Start resolving.
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | error: Error while handling request: [OrderService:createBlockOrder] {"timestamp":"2019-05-16T14:20:17.328Z"}
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | error: Error: 14 UNAVAILABLE: TCP Read failed
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | at Object.exports.createStatusError (/home/app/node_modules/lnd-engine/node_modules/grpc/src/common.js:91:15)
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | at Object.onReceiveStatus (/home/app/node_modules/lnd-engine/node_modules/grpc/src/client_interceptors.js:1204:28)
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | at InterceptingListener._callNext (/home/app/node_modules/lnd-engine/node_modules/grpc/src/client_interceptors.js:568:42)
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | at InterceptingListener.onReceiveStatus (/home/app/node_modules/lnd-engine/node_modules/grpc/src/client_interceptors.js:618:8)
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | at callback (/home/app/node_modules/lnd-engine/node_modules/grpc/src/client_interceptors.js:845:24) {"timestamp":"2019-05-16T14:20:17.334Z"}
blackbox_sparkswap.1.srgiwkz3iwf7@sparkswap | info: Request completed: [OrderService:createBlockOrder] {"timestamp":"2019-05-16T14:20:17.342Z"}
After creating a wallet and letting both LND node sync, the NOT_SYNCED
message persists on the healthcheck
. Rebooting the system resolves the issue.
It is not clear if this affects Sparkswap stock install.
Here is my blackbox.yml:
version: '3.7'
services:
lnd_bitcoin:
here is blackboxd version:
root@sparkswap:~# blackboxd version
0.1.51
here is blackboxd info:
root@sparkswap:~# blackboxd info
❯ BLACKBOX config:
services:
bitcoin:
command: -rpcuser=xxxx -rpcpassword=xxxx -rpcallowip=0.0.0.0/0 -zmqpubrawblock=tcp://0.0.0.0:28333
-zmqpubrawtx=tcp://0.0.0.0:28334 -printtoconsole -txindex
container_name: bitcoind
environment:
BITCOIN_NETWORK: testnet
image: crypdex/bitcoin:0.17
ports:
- published: 8332
target: 8332
- published: 8333
target: 8333
- published: 18332
target: 18332
- published: 18333
target: 18333
- published: 18443
target: 18443
- published: 18444
target: 18444
restart: on-failure
volumes:
- /mnt/data/friendfund/bitcoin:/home/bitcoin/.bitcoin:rw
lnd_bitcoin:
command: --rpclisten=0.0.0.0:10009
container_name: lnd_bitcoin
depends_on:
- bitcoin
environment:
BACKEND: bitcoind
BITCOIN_RPCPASS: xxxx
BITCOIN_RPCUSER: xxxx
CHAIN: bitcoin
NETWORK: testnet
image: crypdex/lnd:0.6
restart: on-failure
volumes:
- /mnt/data/friendfund/lnd:/home/lnd/.lnd:rw
version: '3.7'
On start the bitcoin.conf
and lnd.conf
are not created. I expect they would be created and would have the .env
variables I've added. As a work around, I just add these files manually for now.
The releases are currently managed by Goreleaser. It would be great to get them GPG signed for those that want to verify origin.
I ran into this installing the lnd_litecoin
service:
Seems like this should be LITECOIN
not BITCOIN
I committed 0.1 BTC to Sparkswap's exchange using blackbox. I was wondering if we could add some telemetry so I could opt into reporting that back to Crypdex.
This issue is a request to package https://github.com/djmelik/lndash as a service, currently I just run it from /opt
when I need it
Not sure why this is, but the user path may be used in volume mounts for docker-compose
command, but this does not resolve in docker stack deploy
Running docker-compose -f file1 -f file2 config
advertises that the command keys are overridden (as per the docs). However, when calling docker stack -c file1 -c file2 deploy
, the command
keys are merged. Not sure how this is happening considering it is a string. It could be the the way the entrypoint is handling arguments. Needs investigation.
Everytime a branch is merged to master, we would like to have a snapshot release built so that there is always a "lastest" available in the repo
I cut and paste the .env
example in the docs then got this error:
ERROR: Missing mandatory value for "command" option in service "lnd_bitcoin": BITCOIN_RPCPASSWORD is required
It can be fixed in the docs. I would do this if I was a committer on this repo, doing the fork thing is a lot
Now that the system is reverting to docker-compose
, we should likely include a way to update the docker-compose binary as well since it requires special compilation on ARM64
Every service needs to expose a common healthcheck in some way. Not sure exactly how this should be done right now.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.