Comments (30)
The lightning directory is at /data/lightning
, you should use lightning-cli --lightning-dir=/data/lightning getpeers
.
You can also set alias lnc=lightning-cli --lightning-dir=/data/lightning
, then run commands with lnc getpeers
.
from lightning-charge.
from lightning-charge.
docker-compose restart
and it seems to be working now...!
from lightning-charge.
Errrr, sorry for the spam, it seems to have crashed for some reason and is repeating the same behavior as above?
from lightning-charge.
It looks like something is crashing the lightningd
process. Can you try looking for errors at ~/.lightning/debug.log
, or post the file here (please make sure it doesn't contain anything sensitive)?
Also, I haven't tried running this with docker-compose
yet, can you try running this directly with docker run
and see if the error persists? (just to narrow down the issue - I'll get it working with composer too eventually.)
Something like this should work:
$ docker run -e NETWORK=regtest -e API_TOKEN=myToken -p 9112:9112 shesek/lightning-charge
from lightning-charge.
For some reason debug.log
was never made? I was checking for output there as well, it's blank.. :(
Inside docker:
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 06:29 ? 00:00:00 /bin/sh -c scripts/docker-entryp
root 5 1 0 06:29 ? 00:00:00 /bin/bash scripts/docker-entrypo
root 7 1 4 06:29 ? 00:02:06 bitcoind -daemon -testnet -prune
root 34 5 0 06:30 ? 00:00:13 lightningd --network=testnet --p
root 38 34 0 06:30 ? 00:00:00 [lightningd] <defunct>
root 39 5 0 06:30 ? 00:00:06 charged
root 44 34 0 06:30 ? 00:00:00 [lightning_chann] <defunct>
root 46 34 0 06:30 ? 00:00:00 [lightning_closi] <defunct>
root 47 34 0 06:30 ? 00:00:00 [lightning_gossi] <defunct>
root 48 34 0 06:30 ? 00:00:00 [lightning_hsmd] <defunct>
root 49 34 0 06:30 ? 00:00:00 [lightning_oncha] <defunct>
root 50 34 0 06:30 ? 00:00:00 [lightning_openi] <defunct>
root 51 34 0 06:30 ? 00:00:00 lightning_hsmd
root 52 34 1 06:30 ? 00:00:49 lightning_gossipd
root 7460 34 0 07:13 ? 00:00:00 lightning_onchaind
root 7565 0 0 07:17 pts/0 00:00:00 bash
root 7576 7565 0 07:17 pts/0 00:00:00 ps -ef
It works on-and-off, one problem may have been I had the port 9735
closed, so that could be solving some problems? I was able to fund a channel (I think) with lightning-cli
inside the container. Waiting on confirmations and such! So if anyone else runs into this, be patient, maybe wait 5 minutes and restart docker, repeat until you have stable connection...
Thanks again for all the work AND lightning (heh) fast reply ;)
from lightning-charge.
Did you previously have a lightning node setup at ~/.lightning
?
from lightning-charge.
First of all thanks for making lightning-charge!
I'm also seeing intermittent lightningd crashes pretty much the same as @ckcollab, and I'm running it on testnet with the suggested command:
docker run -v $HOME/.lightning:/root/.lightning -v $HOME/.bitcoin:/root/.bitcoin \
-v `pwd`/charge.db:/opt/charged/sqlite.db \
-p 9112:9112 -e API_TOKEN=mySecretToken \
shesek/lightning-charge
Thinking of separating the bitcoind, lightningd and charged into their own containers to isolate the problem.
from lightning-charge.
Fwiw here's the ~/.lightning/debug.log
stacktrace. I was also testing out a few bitcoin-cli commands at the time but I didn't think it should affect lightningd.
lightningd(26): Unable to estimate ECONOMICAL/100 fee
lightningd(26): Unable to estimate CONSERVATIVE/2 fee
lightningd(26): Unable to estimate ECONOMICAL/4 fee
lightningd(26): Unable to estimate ECONOMICAL/100 fee
lightningd(26): bitcoin-cli -testnet getblock 0000000001c1ae6b176f93fe950d4b757270bb13fc80dfd233ac866ef39006ee false exited with status 1
lightningd(26): bitcoin-cli -testnet getblock 0000000001c1ae6b176f93fe950d4b757270bb13fc80dfd233ac866ef39006ee false: bad block 'error code: -1
error message:
Block not available (pruned data)
'?
lightningd(26): FATAL SIGNAL 6 RECEIVED
lightningd(26): backtrace: lightningd/log.c:436 (log_crash) 0x5609657e6362
lightningd(26): backtrace: (null):0 ((null)) 0x7fd33efb17ef
lightningd(26): backtrace: (null):0 ((null)) 0x7fd33efb177f
lightningd(26): backtrace: (null):0 ((null)) 0x7fd33efb3379
lightningd(26): backtrace: lightningd/log.c:525 (fatal) 0x5609657e67b8
lightningd(26): backtrace: lightningd/bitcoind.c:368 (process_rawblock) 0x5609657daa50
lightningd(26): backtrace: lightningd/bitcoind.c:156 (bcli_finished) 0x5609657da057
lightningd(26): backtrace: ccan/ccan/io/poll.c:183 (destroy_conn) 0x56096582eca5
lightningd(26): backtrace: ccan/ccan/io/poll.c:189 (destroy_conn_close_fd) 0x56096582ecc5
lightningd(26): backtrace: ccan/ccan/tal/tal.c:240 (notify) 0x560965838441
lightningd(26): backtrace: ccan/ccan/tal/tal.c:400 (del_tree) 0x5609658388f6
lightningd(26): backtrace: ccan/ccan/tal/tal.c:509 (tal_free) 0x560965838d13
lightningd(26): backtrace: ccan/ccan/io/io.c:443 (io_close) 0x56096582d8d7
lightningd(26): backtrace: ccan/ccan/io/poll.c:309 (io_loop) 0x56096582f0bb
lightningd(26): backtrace: lightningd/lightningd.c:321 (main) 0x5609657e4d2c
lightningd(26): backtrace: (null):0 ((null)) 0x7fd33ef9c3f0
lightningd(26): backtrace: (null):0 ((null)) 0x5609657d9599
lightningd(26): backtrace: (null):0 ((null)) 0xffffffffffffffff
from lightning-charge.
@yayitswei that was an issue in an older version of lightningd, just updated the docker image to the latest lightningd/charged releases. Should work much smoother now.
@ckcollab Can you see if this helped with your situation also?
from lightning-charge.
Correction: the docker image is still uploading, should be ready in a few minutes.
from lightning-charge.
Thanks for the quick response! Could you give me the image digest / dockerhub link so I can verify? Currently on ae2e9f4cfc337aa674777be291be4b0db01489129330889f8e5ebd60cd3752eb
.
from lightning-charge.
Also on ae2e9f4cfc337aa674777be291be4b0db01489129330889f8e5ebd60cd3752eb
I did a docker-compose down && docker-compose up -d
and I think it may have lost my wallet info? lightning-cli listfunds
doesn't show any funds any more. I think everything related to my wallet should have been persisted in ~/.lightning
? Maybe my permissions were bad or something and I just fixed them after chown
'ing the directory...
from lightning-charge.
Sorry, looks like I didn't properly update the image last time! Updated again now, the digest is 958c09c6b765256bf8f3cff063a29c3ad629dfcf57ac438e7ae3bc8026e20cbc
.
I did a docker-compose down && docker-compose up -d and I think it may have lost my wallet info? lightning-cli listfunds doesn't show any funds any more.
Ouch. I hope that was on testnet? :)
I think everything related to my wallet should have been persisted in ~/.lightning? Maybe my permissions were bad or something and I just fixed them after chown'ing the directory...
Yes, it should've. Is it persisting it properly now?
I would also suggest to make a backup of your wallet files outside the mounted volume, just in case.
from lightning-charge.
Ouch. I hope that was on testnet? :)
Of course, and no big deal, thanks so much for all of the work on this!
Dockers seem to have updated, and seem to be working alright. I think one of my problems was not creating and giving proper chown
permissions to ~/.bitcoin
and ~/.lightning
.
Yes, it should've. Is it persisting it properly now?
Seems to be, I'll keep you updated.
from lightning-charge.
I'm still on ae2e9f
and everything seems to working, no lightningd crashes. I'm afraid to restart lest I lose my wallet info - running on testnet but it took a while to set up those channels!
from lightning-charge.
I'm afraid to restart lest I lose my wallet info
If you backup your ~/.lightning
directory first, this shouldn't be a concern. You can also try running with a separate lightning directory first, i.e. -v $HOME/.lightning2:/root/.lightning
.
from lightning-charge.
I am trying to fund a channel, but I don't see my transactions on a blockchain explorer:
$ lightning-cli connect 02d28c3aac4b4f36746052a735831afbe65bc5698a7be5bd41b42fd1ddf2a1a358 45.63.87.131
{ "id" : "02d28c3aac4b4f36746052a735831afbe65bc5698a7be5bd41b42fd1ddf2a1a358" }
$ lightning-cli fundchannel 02d28c3aac4b4f36746052a735831afbe65bc5698a7be5bd41b42fd1ddf2a1a358 1000000
{ "tx" : "0200000000010146e31ebb8044121325a3d9e1da098a4932a7ce717a341e044c6afee4fa8fba870100000017160014db2d8a5a61d4f5b31a5431da63e9c18467088ae3ffffffff0240420f0000000000220020e4b666388ed54409f9bfbabe4300ad24177c990c695ec1bf67d3306d03ca0d93ca8f120500000000160014d2c33f5fd099d7adc350cebe52be335477c8528902483045022100920f0b8510cfd1de21eab806e1d6c4e578454e86e62537d0b243692a9d1c846c0220100fae4d293260b3a70b4d264dd39770ea399fc16efe05f7912cfa926023e8390121035893c2e417787b93982bda8f8b5d2685fa0bccca2dcaa407bc9110af1f7394e300000000", "txid" : "d42d9d81beb48ffee45e10e7a33b765764c0fe1c89ca2e748c5c79793a3b1b46" }
And here's getpeers
(with another channel still not funded after a while)
$ lightning-cli getpeers
{ "peers" :
[
{ "state" : "CHANNELD_AWAITING_LOCKIN", "netaddr" :
[ "45.63.87.131:9735" ], "peerid" : "02d28c3aac4b4f36746052a735831afbe65bc5698a7be5bd41b42fd1ddf2a1a358", "connected" : true, "owner" : "lightning_channeld", "msatoshi_to_us" : 1000000000, "msatoshi_total" : 1000000000 },
{ "state" : "CHANNELD_AWAITING_LOCKIN", "netaddr" :
[ "159.203.125.125:9735" ], "peerid" : "02c39955c1579afe4824dc0ef4493fdf7f3660b158cf6d367d8570b9f19683afb5", "connected" : true, "owner" : "lightning_channeld", "msatoshi_to_us" : 861165000, "msatoshi_total" : 861165000 } ] }
Transaction not getting sent out...? It is persisting though! :)
from lightning-charge.
Interesting, not sure what could be causing this. Can you see if anything relevant shows up in bitcoind's debug.log
?
@rustyrussell @cdecker ideas?
from lightning-charge.
$ tail ~/.bitcoin/debug.log
2018-01-17 05:47:48 tor: Thread interrupt
2018-01-17 05:47:48 torcontrol thread exit
2018-01-17 05:47:48 addcon thread exit
2018-01-17 05:47:48 scheduler thread interrupt
2018-01-17 05:47:48 Shutdown: In progress...
2018-01-17 05:47:48 msghand thread exit
2018-01-17 05:47:48 net thread exit
2018-01-17 05:47:51 opencon thread exit
2018-01-17 05:47:51 Dumped mempool: 5e-06s to copy, 0.00198s to dump
2018-01-17 05:47:52 Shutdown: done
From yesterday/a while ago?? I had to fix permissions so I didn't have to sudo
to view it... I may be messing up permissions left and right, so totally my fault, but some guiding errors would be super helpful?
from lightning-charge.
Did you look back before these lines (e.g. with -n 50
)? Maybe there's something relevant before them?
I just tried running with docker from an environment that didn't previously have a ~/.lightning
and ~/.bitcoin
directory, and ran into the same permissions issues you did. There's some more information on what's causing this here. Trying to find a workaround to make this work out-of-the-box, without having to manually fiddle with permissions.
from lightning-charge.
Here's -n 100
from the dump:
2018-01-17 05:47:40 Bitcoin version v0.15.1.0-g7b57bc998f
2018-01-17 05:47:40 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2018-01-17 05:47:40 Assuming ancestors of block 0000000000000000003b9ce759c2a087d52abc4266f8f4ebd6d768b89defa50a have valid signatures.
2018-01-17 05:47:40 Setting nMinimumChainWork=000000000000000000000000000000000000000000723d3581fe1bd55373540a
2018-01-17 05:47:40 Using the 'standard' SHA256 implementation
2018-01-17 05:47:40 Using RdRand as an additional entropy source
2018-01-17 05:47:40 Default data directory /root/.bitcoin
2018-01-17 05:47:40 Using data directory /root/.bitcoin
2018-01-17 05:47:40 Using config file /root/.bitcoin/bitcoin.conf
2018-01-17 05:47:40 Using at most 125 automatic connections (1048576 file descriptors available)
2018-01-17 05:47:40 Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
2018-01-17 05:47:40 Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
2018-01-17 05:47:40 Using 0 threads for script verification
2018-01-17 05:47:40 scheduler thread start
2018-01-17 05:47:40 libevent: getaddrinfo: address family for nodename not supported
2018-01-17 05:47:40 Binding RPC on address ::1 port 8332 failed.
2018-01-17 05:47:40 HTTP: creating work queue of depth 16
2018-01-17 05:47:40 No rpcpassword set - using random cookie authentication
2018-01-17 05:47:40 Generated RPC authentication cookie /root/.bitcoin/.cookie
2018-01-17 05:47:40 HTTP: starting 4 worker threads
2018-01-17 05:47:40 init message: Verifying wallet(s)...
2018-01-17 05:47:40 Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010)
2018-01-17 05:47:40 Using wallet wallet.dat
2018-01-17 05:47:40 CDBEnv::Open: LogDir=/root/.bitcoin/database ErrorFile=/root/.bitcoin/db.log
2018-01-17 05:47:40 Cache configuration:
2018-01-17 05:47:40 * Using 2.0MiB for block index database
2018-01-17 05:47:40 * Using 8.0MiB for chain state database
2018-01-17 05:47:40 * Using 440.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space)
2018-01-17 05:47:40 init message: Loading block index...
2018-01-17 05:47:40 Opening LevelDB in /root/.bitcoin/blocks/index
2018-01-17 05:47:40 Opened LevelDB successfully
2018-01-17 05:47:40 Using obfuscation key for /root/.bitcoin/blocks/index: 0000000000000000
2018-01-17 05:47:40 LoadBlockIndexDB: last block file = 0
2018-01-17 05:47:40 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01)
2018-01-17 05:47:40 Checking all blk files are present...
2018-01-17 05:47:40 LoadBlockIndexDB: transaction index disabled
2018-01-17 05:47:40 Initializing databases...
2018-01-17 05:47:40 Pre-allocating up to position 0x1000000 in blk00000.dat
2018-01-17 05:47:40 Opening LevelDB in /root/.bitcoin/chainstate
2018-01-17 05:47:40 Opened LevelDB successfully
2018-01-17 05:47:40 Wrote new obfuscate key for /root/.bitcoin/chainstate: 640c6402a78781ec
2018-01-17 05:47:40 Using obfuscation key for /root/.bitcoin/chainstate: 640c6402a78781ec
2018-01-17 05:47:40 init message: Rewinding blocks...
2018-01-17 05:47:40 block index 18ms
2018-01-17 05:47:40 init message: Loading wallet...
2018-01-17 05:47:40 nFileVersion = 150100
2018-01-17 05:47:40 Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total
2018-01-17 05:47:40 Performing wallet upgrade to 60000
2018-01-17 05:47:41 keypool added 2000 keys (1000 internal), size=2000 (1000 internal)
2018-01-17 05:47:41 keypool reserve 1
2018-01-17 05:47:41 keypool keep 1
2018-01-17 05:47:42 wallet 1974ms
2018-01-17 05:47:42 keypool added 1 keys (0 internal), size=2000 (1000 internal)
2018-01-17 05:47:42 setKeyPool.size() = 2000
2018-01-17 05:47:42 mapWallet.size() = 0
2018-01-17 05:47:42 mapAddressBook.size() = 1
2018-01-17 05:47:42 UpdateTip: new best=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f height=0 version=0x00000001 log2_work=32.000022 tx=1 date='2009-01-03 18:15:05' progress=0.000000 cache=0.0MiB(0txo)
2018-01-17 05:47:42 Failed to open mempool file from disk. Continuing anyway.
2018-01-17 05:47:42 mapBlockIndex.size() = 1
2018-01-17 05:47:42 nBestHeight = 0
2018-01-17 05:47:42 torcontrol thread start
2018-01-17 05:47:42 Bound to [::]:8333
2018-01-17 05:47:42 Bound to 0.0.0.0:8333
2018-01-17 05:47:42 init message: Loading P2P addresses...
2018-01-17 05:47:42 ERROR: DeserializeFileDB: Failed to open file /root/.bitcoin/peers.dat
2018-01-17 05:47:42 Invalid or missing peers.dat; recreating
2018-01-17 05:47:42 init message: Loading banlist...
2018-01-17 05:47:42 ERROR: DeserializeFileDB: Failed to open file /root/.bitcoin/banlist.dat
2018-01-17 05:47:42 Invalid or missing banlist.dat; recreating
2018-01-17 05:47:42 init message: Starting network threads...
2018-01-17 05:47:42 net thread start
2018-01-17 05:47:42 dnsseed thread start
2018-01-17 05:47:42 Loading addresses from DNS seeds (could take a while)
2018-01-17 05:47:42 init message: Done loading
2018-01-17 05:47:42 opencon thread start
2018-01-17 05:47:42 msghand thread start
2018-01-17 05:47:42 addcon thread start
2018-01-17 05:47:42 139 addresses found from DNS seeds
2018-01-17 05:47:42 dnsseed thread exit
2018-01-17 05:47:43 receive version message: /Satoshi:0.15.1/: version 70015, blocks=504605, us=35.190.154.83:52172, peer=0
2018-01-17 05:47:45 receive version message: /Satoshi:0.14.2/UASF-Segwit:1.0(BIP148)/: version 70015, blocks=504605, us=35.190.154.83:57542, peer=1
2018-01-17 05:47:48 tor: Thread interrupt
2018-01-17 05:47:48 torcontrol thread exit
2018-01-17 05:47:48 addcon thread exit
2018-01-17 05:47:48 scheduler thread interrupt
2018-01-17 05:47:48 Shutdown: In progress...
2018-01-17 05:47:48 msghand thread exit
2018-01-17 05:47:48 net thread exit
2018-01-17 05:47:51 opencon thread exit
2018-01-17 05:47:51 Dumped mempool: 5e-06s to copy, 0.00198s to dump
2018-01-17 05:47:52 Shutdown: done
Also, I was able to finally connect, I think!
$ lightning-cli getpeers
{ "peers" :
[
{ "state" : "CHANNELD_AWAITING_LOCKIN", "netaddr" :
[ "45.63.87.131:9735" ], "peerid" : "02d28c3aac4b4f36746052a735831afbe65bc5698a7be5bd41b42fd1ddf2a1a358", "connected" : true, "owner" : "lightning_channeld", "msatoshi_to_us" : 1000000000, "msatoshi_total" : 1000000000 },
{ "state" : "CHANNELD_AWAITING_LOCKIN", "netaddr" :
[ "159.203.125.125:9735" ], "peerid" : "02c39955c1579afe4824dc0ef4493fdf7f3660b158cf6d367d8570b9f19683afb5", "connected" : true, "owner" : "lightning_channeld", "msatoshi_to_us" : 861165000, "msatoshi_total" : 861165000 },
{ "state" : "OPENINGD", "netaddr" :
[ "81.27.36.90:9735" ], "peerid" : "021a45969aea11e8a306defcecf52029628c98f7e900941e2fd4f628ccf2aece28", "connected" : true, "owner" : "lightning_openingd" } ] }
So hopefully in a couple more confirmations I can get my first item from Starblocks!!! :D
from lightning-charge.
Can you please check what grep -C 10 sendrawtransaction ~/.bitcoin/debug.log
returns?
from lightning-charge.
Nothing is logging there any more actually.. permissions should be ok.. I just went into the container and read/wrote to the file...! Output from that command was empty
from lightning-charge.
It's probably not the issue but your docker-compose.yml
in your first post has a small typo:
root.lightning => root/.lightning
from lightning-charge.
That's definitely an issue!! Thanks. That could solve some problems for sure ;)
from lightning-charge.
@ckcollab I made some changes to resolve the permission issues with docker. Specifically, the README now suggests using --user <uid>
so that files created inside the container are owned by the user. This also required moving data storage to /data
, as the user inside the container no longer has access to write in /root
.
I also changed the instructions so that everything is stored in a single directory, instead of using the user's local ~/.bitcoin
and ~/.lightning
.
If you'd like to run this with the previously used paths, replace -v `pwd`/data:/data
with -v $HOME/.lightning:/data/lightning -v $HOME/.bitcoin:/data/bitcoin -v `pwd`/charge.db:/data/charge.db
from lightning-charge.
@ckcollab @yayitswei Also, another important change: bitcoind
is now running without pruning, due to some pruning-related issues in c-lightning. You'll have to either manually reindex your existing bitcoin datadir, or remove it to let it re-sync from scratch.
Note that the latest changes aren't on docker hub yet, I'll update when they are.
from lightning-charge.
[email protected]
was released on npm and docker (image digest: 563a79de9c1e5a9edb070e5a6d1ce06cb11707e3b1f3cadfde74a009e9a4cdb1
).
Closing this issue, let me know if you need any other help.
from lightning-charge.
Currently getting this error calling lightning-cli
inside the container:
root@628964919fe2:/opt/charged# lightning-cli getpeers
lightning-cli: Moving into '/tmp/.lightning': No such file or directory
I'm on 563a79de9c1e5a9edb070e5a6d1ce06cb11707e3b1f3cadfde74a009e9a4cdb1
.
from lightning-charge.
Related Issues (20)
- shesek/lightning-charge (standalone) is unable to start HOT 2
- shesek/lightning-charge:standalone - unable to start HOT 8
- Support for v0.8.0? HOT 3
- Look for lightning-rpc in the network subdirectory if it does not exists in the parent LN_PATH
- Change price from Bitcoin Average? HOT 2
- Weird 'forbidden' error HOT 2
- Can you use tini in the dockerfiles? HOT 1
- Feature request: Add support for displaying in satoshis HOT 3
- Adopt to changed lightningd api HOT 4
- Docker image error HOT 2
- Docker container stops on boot using latest version of charged HOT 3
- Support for v0.10.0? HOT 1
- Lightning Charge container keeps restarting in docker , ARM64 HOT 2
- Toks
- gyp: Undefined variable module_name in binding.gyp while trying to load binding.gyp HOT 4
- Unable to run Docker with existing bitcoind/lightningd
- build fail
- lightning-charge not answering
- Add lightning-network as a topic to this repository
- Compatibility with Core-Lightning v23.05 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lightning-charge.