Git Product home page Git Product logo

unobtanium's Introduction

Unobtanium Core integration/staging tree

https://www.unobtanium.uno

What is Unobtanium?

Unobtanium is an experimental new digital currency that enables instant payments to anyone, anywhere in the world. Unobtanium uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Unobtanium is the name of open source software which enables the use of this currency.

For more information, as well as an immediately useable, binary version of the Unobtanium software, see https://www.unobtanium.uno.

License

Unobtanium is released under the terms of the MIT license. See COPYING for more information or see http://opensource.org/licenses/MIT.

Development process

Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.

If it is a simple/trivial/non-controversial change, then one of the Unobtanium development team members simply pulls it.

If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on CryptoCoinTalk.

The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't match the project's coding conventions (see doc/developer-notes.md) or are controversial.

The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are created regularly to indicate new official, stable release versions of Unobtanium.

Testing

Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.

Automated Testing

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code. Unit tests can be compiled and run (assuming they weren't disabled in configure) with: make check

Every pull request is built for both Windows and Linux on a dedicated server, and unit and sanity tests are automatically run. The binaries produced may be used for manual QA testing — a link to them will appear in a comment on the pull request posted by /test-scripts for the build/test scripts.

Manual Quality Assurance (QA) Testing

Large changes should have a test plan, and should be tested by somebody other than the developer who wrote the code.

unobtanium's People

Contributors

artis101 avatar bitseeds-cryptocurrency avatar bryceweiner avatar crackfoo avatar cryptapus avatar flurbos avatar infernoman avatar jyap808 avatar mmpool avatar salfter avatar sherlockcoin avatar shinoa-fores avatar terhnt avatar thegreatoldone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unobtanium's Issues

NULL DATA

Since Bitcoin 0.9.0 arbitrary data could be inserted utilizing the OP_RETURN or before by substituting the hashed public key in P2PKH.

Remove insertion on Unobtanium.

git conflict

you fucked up git by not resolving the conflicting commits!

broken since 386d0d7

Chainsplits, which tip is valid?

Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.

We're synced with the explorer : https://chainz.cryptoid.info/uno/
After invalidating a block 7000 blocks lower

What's going on, what is the current correct height and why are nodes disagreeing

paymentrequest.pb.h: No such file or directory

make fails:

CXX qt/test/qt_test_test_unobtanium_qt-test_main.o
In file included from qt/test/../paymentserver.h:35:0,
from qt/test/paymentservertests.h:8,
from qt/test/test_main.cpp:12:
qt/test/../paymentrequestplus.h:8:31: fatal error: paymentrequest.pb.h: No such file or directory
#include "paymentrequest.pb.h"
^
compilation terminated.

solution:
./configure --without-gui

OP_CHECKLOCKTIMEVERIFY Needed

Using sendrawtransaction [txhash] from the UNO-QT Console returns "non-final (code-26)".

Confirmed (with Blocknet Lead 86b) that in order to redeem backed-out trades on the Blocknet DX UNO needs "OP_CHECKLOCKTIMEVERIFY which was a part of Bitcoin's BIP65".

Any chance to have OP_CHECKLOCKTIMEVERIFY incorporated into the UNO Client?

Cannot build UNO - STATIC_ASSERTION_FAILURE

This new version is driving me bonkers. Build fails here:

In file included from /usr/local/include/boost/variant.hpp:22:0,
from script/standard.h:12,
from base58.h:21,
from rpcrawtransaction.cpp:6:
/usr/local/include/boost/variant/get.hpp: In instantiation of ‘typename boost::add_reference::type boost::strict_get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = boost::detail::variant::void_; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference::type = const CScriptID&]’:
/usr/local/include/boost/variant/get.hpp:284:33: required from ‘typename boost::add_reference::type boost::get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = boost::detail::variant::void_; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference::type = const CScriptID&]’
rpcrawtransaction.cpp:291:77: required from here
/usr/local/include/boost/variant/get.hpp:216:1: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE’
make[2]: *** [libbitcoin_server_a-rpcrawtransaction.o] Error 1
make[2]: Leaving directory /root/crypto/Unobtanium/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/root/crypto/Unobtanium/src'
make: *** [all-recursive] Error 1

unobtaniumd crashes

Getting this error:

*** Error in `unobtaniumd': double free or corruption (fasttop): 0x00007fc3ac0253c0 ***

Boost error while building

I was building the project on Ubuntu 16.04 and ran into the following error

/usr/include/boost/variant/get.hpp: In instantiation of ‘typename boost::add_reference<T>::type boost::strict_get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = boost::detail::variant::void_; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference<T>::type = const CScriptID&]’:
/usr/include/boost/variant/get.hpp:284:25:   required from ‘typename boost::add_reference<T>::type boost::get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = boost::detail::variant::void_; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference<T>::type = const CScriptID&]’
rpcrawtransaction.cpp:291:77:   required from here
/usr/include/boost/variant/get.hpp:178:5: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’
     BOOST_STATIC_ASSERT_MSG(

The fix for my issue is here

My Issue

Is this because of a mistake on my part? or should I put in a PR to change the line in rpcrawtransaction.cpp?

regtest : nBits below minimum work

Tried to compile unobtaniumd from master and used compiled binaries from @Flurbos
Anyways faced same effect:
unobtaniumd -regtest -daemon -reindex fails with debug.log:

2019-05-23 16:52:55 Unobtanium version v0.10.4.14c2ccd4-dirty-BadChoicesZ (2018-07-26 20:43:14 +0800)
2019-05-23 16:52:55 Using OpenSSL version OpenSSL 1.0.1k 8 Jan 2015
2019-05-23 16:52:55 Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
2019-05-23 16:52:55 Default data directory /home/tester/.unobtanium
2019-05-23 16:52:55 Using data directory /home/tester/bitcoin-testnet-box/1/regtest
2019-05-23 16:52:55 Using config file /home/tester/bitcoin-testnet-box/1/unobtanium.conf
2019-05-23 16:52:55 Using at most 125 connections (1048576 file descriptors available)
2019-05-23 16:52:55 Using 4 threads for script verification
2019-05-23 16:52:55 Binding RPC on address ::1 port 65531 (IPv4+IPv6 bind any: 0)
2019-05-23 16:52:55 ERROR: Binding RPC on address ::1 port 65531 failed: bind: Cannot assign requested address
2019-05-23 16:52:55 Binding RPC on address 127.0.0.1 port 65531 (IPv4+IPv6 bind any: 0)
2019-05-23 16:52:55 Using wallet wallet.dat
2019-05-23 16:52:55 init message: Verifying wallet...
2019-05-23 16:52:55 CDBEnv::Open: LogDir=/home/tester/bitcoin-testnet-box/1/regtest/database ErrorFile=/home/tester/bitcoin-testnet-box/1/regtest/db.log
2019-05-23 16:52:55 Bound to [::]:18444
2019-05-23 16:52:55 Bound to 0.0.0.0:18444
2019-05-23 16:52:55 init message: Loading block index...
2019-05-23 16:52:55 Wiping LevelDB in /home/tester/bitcoin-testnet-box/1/regtest/blocks/index
2019-05-23 16:52:55 Opening LevelDB in /home/tester/bitcoin-testnet-box/1/regtest/blocks/index
2019-05-23 16:52:55 Opened LevelDB successfully
2019-05-23 16:52:55 Wiping LevelDB in /home/tester/bitcoin-testnet-box/1/regtest/chainstate
2019-05-23 16:52:55 Opening LevelDB in /home/tester/bitcoin-testnet-box/1/regtest/chainstate
2019-05-23 16:52:55 Opened LevelDB successfully
2019-05-23 16:52:55 Initializing databases...
2019-05-23 16:52:55 init message: Verifying blocks...
2019-05-23 16:52:55  block index              75ms
2019-05-23 16:52:55 init message: Loading wallet...
2019-05-23 16:52:55 nFileVersion = 100401
2019-05-23 16:52:55 Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total
2019-05-23 16:52:55 Performing wallet upgrade to 60000
2019-05-23 16:52:55 keypool added key 1, size=1
2019-05-23 16:52:55 keypool added key 2, size=2
...
2019-05-23 16:52:57 keypool added key 100, size=100
2019-05-23 16:52:57 keypool added key 101, size=101
2019-05-23 16:52:57 keypool reserve 1
2019-05-23 16:52:57 keypool keep 1
2019-05-23 16:52:57  wallet                 1671ms
2019-05-23 16:52:57 Waiting for genesis block to be imported...
2019-05-23 16:52:57 Reindexing finished
2019-05-23 16:52:57 Initializing databases...
2019-05-23 16:52:57 Pre-allocating up to position 0x1000000 in blk00000.dat
2019-05-23 16:52:57 ERROR: CheckProofOfWork() : nBits below minimum work
2019-05-23 16:52:57 ERROR: CheckBlockProofOfWork() : proof of work failed
2019-05-23 16:52:57 ERROR: CheckBlockHeader(): proof of work failed
2019-05-23 16:52:57 InvalidChainFound: invalid block=3868bcc735f32cdd9b42971cdee7bc620c50fada5e3ac5fdfd35630aaf2eb64e  height=0  log2_work=1  date=2013-08-03 16:56:25

unobtanium.conf simply contains rpcuser and rpcpassword

Reproduced on ubuntu:18.04 and ubuntu:14.04 docker images and ubuntu:18.04 live installation.
libdb4.8-dev and libdb4.8++-dev are installed from ppa:bitcoin/bitcoin

Any suggestions, please?

ubuntu 14.04 x64

ironman@home:~/Unobtanium$ make
Making all in src
make[1]: Entering directory `/home/ironman/Unobtanium/src'
make[2]: Entering directory `/home/ironman/Unobtanium/src'
  CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo
  CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
  CXX      crypto/libbitcoinconsensus_la-sha1.lo
  CXX      crypto/libbitcoinconsensus_la-sha256.lo
  CXX      crypto/libbitcoinconsensus_la-sha512.lo
  CXX      primitives/libbitcoinconsensus_la-transaction.lo
  CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
  CXX      script/libbitcoinconsensus_la-interpreter.lo
  CXX      script/libbitcoinconsensus_la-script.lo
  CXXLD    libbitcoinconsensus.la
  CXX      libbitcoin_server_a-rpcmining.o
rpcmining.cpp: In function ‘json_spirit::Value getauxblock(const Array&, bool)’:
rpcmining.cpp:763:7: error: ‘fAccepted’ was not declared in this scope
   if (fAccepted)
       ^
rpcmining.cpp:765:9: error: ‘sc’ was not declared in this scope
    if (!sc.found)
         ^
rpcmining.cpp:767:4: error: ‘state’ was not declared in this scope
    state = sc.state;
    ^
rpcmining.cpp:767:12: error: ‘sc’ was not declared in this scope
    state = sc.state;
            ^
rpcmining.cpp:769:32: error: ‘state’ was not declared in this scope
   return BIP22ValidationResult(state);
                                ^
rpcmining.cpp: At global scope:
rpcmining.cpp:771:1: error: expected declaration before ‘}’ token
 }
 ^
make[2]: *** [libbitcoin_server_a-rpcmining.o] Error 1
make[2]: Leaving directory `/home/ironman/Unobtanium/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ironman/Unobtanium/src'
make: *** [all-recursive] Error 1

deposit problem...

i deposit my UNO coin from coinexchange.io to bleutrade about 1day 5 hours ago.... i didn't check the announcement for delisting UNO at 15.07.19 .... i saw status active & deposit my UNO coin .....it show explorer & 400 confirmation is past but coin doesn't deposit yet....help me to deposit... Amount : 4.79367356 UNO TX id : 16c3d06d616967780006a53a2812e4776fa82fb2d4acf760557f9093040c11f6

no one from support team & telegram admin didn't reply me...please help me...

missing bits in getauxblock

Getauxblock output for Unobtanium is like

{
"target": "000000000000000000000000000000000000000025f517000000000000000000",
"hash": "947430409f2735a557b918f219b19567d339a4fcd4c93ef9e463b787fc52ba31",
"chainid": 117
}

Look how it's for namecoin

{
"hash": "574f20c7b2b1f810e9d7adf5b72af031112fc51bd770608b6bafd694b3efa0c7",
"chainid": 1,
"previousblockhash": "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206",
"coinbasevalue": 5000000000,
"bits": "207fffff",
"height": 1,
"_target": "0000000000000000000000000000000000000000000000000000000000ffff7f"
}

[nBits field in bitcoin block header] (https://bitcoin.org/en/developer-reference#target-nbits)

Can you please add "bits" in getauxblock output ?

Uno Wallet Not Connecting

My uno wallet is not connecting.

Mac OSX - firewall is off.

my unobtanium.conf file says this:

rpcuser=unobtaniumrpc
rpcpassword=pass
#regtest=1

addnode=104.238.177.115
addnode=139.180.166.203
addnode=72.89.49.243

... And i tried this on console:

Screenshot 2021-03-02 at 10 04 19

autoreconf-2.69: automake failed with exit status: 1

Tried updating Unobtanium (along with some other coins)...looks like it's switched to the autotools-based build system used by recent Bitcoin versions, so I try regenerating a suitable ebuild (I use Gentoo). It fails. I then try building unobtaniumd manually according to the directions in doc/build-unix.txt...that produces the following output:

aclocal-1.13: warning: couldn't open directory 'build-aux/m4': No such file or directory
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
libtoolize: copying file 'build-aux/m4/libtool.m4'
libtoolize: copying file 'build-aux/m4/ltoptions.m4'
libtoolize: copying file 'build-aux/m4/ltsugar.m4'
libtoolize: copying file 'build-aux/m4/ltversion.m4'
libtoolize: copying file 'build-aux/m4/lt~obsolete.m4'
configure.ac:5: installing 'build-aux/config.guess'
configure.ac:5: installing 'build-aux/config.sub'
configure.ac:9: installing 'build-aux/install-sh'
configure.ac:9: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
libtoolize: copying file 'build-aux/m4/libtool.m4'
libtoolize: copying file 'build-aux/m4/ltoptions.m4'
libtoolize: copying file 'build-aux/m4/ltsugar.m4'
libtoolize: copying file 'build-aux/m4/ltversion.m4'
libtoolize: copying file 'build-aux/m4/lt~obsolete.m4'
configure.ac:15: installing 'build-aux/config.guess'
configure.ac:15: installing 'build-aux/config.sub'
configure.ac:25: installing 'build-aux/install-sh'
configure.ac:25: installing 'build-aux/missing'
configure.ac:879: error: required file 'share/setup.nsi.in' not found
configure.ac:879: error: required file 'share/qt/Info.plist.in' not found
configure.ac:879: error: required file 'src/test/buildenv.py.in' not found
Makefile.am:5: warning: user variable 'GZIP_ENV' defined here ...
/usr/share/automake-1.13/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here
Makefile.am:54: warning: user target 'distcleancheck' defined here ...
/usr/share/automake-1.13/am/distdir.am: ... overrides Automake target 'distcleancheck' defined here
src/Makefile.am: installing 'build-aux/depcomp'
src/Makefile.am:402: warning: user target '.mm.o' defined here ...
/usr/share/automake-1.13/am/depend2.am: ... overrides Automake target '.mm.o' defined here
parallel-tests: installing 'build-aux/test-driver'
autoreconf-2.69: automake failed with exit status: 1

I have a working build of an older version which is still running, but can't build the new version.

No payments using daemon with p2pool merge mining

When using the daemon for merge mining with p2pool I don't receive any payments - but when using the QT wallet, payments are received normally. This is using Xubuntu 14.04 64bit, I'm unaware if the issue is the same on other OS's.

ERROR: Aux POW missing chain merkle root in parent coinbase

Hello,

Running on latest master.
When starting daemon, pool can find couple of blocks, but lately all are being rejected with below error

2021-03-08 05:02:11 ERROR: Aux POW missing chain merkle root in parent coinbase
2021-03-08 05:02:11 ERROR: CheckBlockProofOfWork() : AUX POW is not valid
2021-03-08 05:02:11 ERROR: CheckBlockHeader(): proof of work failed
2021-03-08 05:02:11 ERROR: ProcessNewBlock: CheckBlock FAILED

Pool implementation source code for reference

https://github.com/tpruvot/yiimp

build failed

some detail info:

ecwrapper.cpp:73:31: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_mod_mul(sor, ecsig->s, rr, order, ctx)) { ret=-1; goto err; }

bignum.h:57:24: error: invalid use of incomplete type ‘BIGNUM {aka struct bignum_st}’
class CBigNum : public BIGNUM

bignum.h:62:9: error: ‘BN_init’ was not declared in this scope
BN_init(this);

missing isscript in validateaddress

For addresses that are not mine, neither watchonly, validateaddress output is missing the isscript field:

unobtanium-cli validateaddress ucoajxr5KTy3mUMd465q8ZuvqLqhSCUeYY
{
    "isvalid" : true,
    "address" : "ucoajxr5KTy3mUMd465q8ZuvqLqhSCUeYY",
    "scriptPubKey" : "76a914c3f710deb7320b0efa6edb14e3ebeeb9155fa90d88ac",
    "ismine" : false,
    "iswatchonly" : true,
    "isscript" : false,
    "account" : ""
}

unobtanium-cli validateaddress DNuWZERohfvaKMAGGvLxH3qaJgZexxY8tk
{
    "isvalid" : true,
    "address" : "DNuWZERohfvaKMAGGvLxH3qaJgZexxY8tk",
    "scriptPubKey" : "a914c2e07d2550451e9979f2a4f14d336ac2ad29b34087",
    "ismine" : false
}

Can this please be added? It would make it possible to add UNO to https://github.com/KomodoPlatform/atomicDEX-Desktop

cant get unobtanium to start

Error initializing wallet database environment /home/user/.unobtanium!
built with berkley db 4.8 on ubuntu 14.04 server edition.

move Merged Mining

As there MM is NOT working and there is NO schedule to start it, MM code should be moved from master to separate branch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.