Giter Site home page Giter Site logo

netcoinfoundation / netcoin Goto Github PK

View Code? Open in Web Editor NEW
19.0 16.0 31.0 141.06 MB

Netcoin - Digital currency with personal interest rate and fair weight stake mining

Home Page: http://netcoin.io

License: MIT License

Python 1.57% Makefile 0.31% QMake 0.40% Shell 0.29% NSIS 0.15% C++ 93.20% C 1.08% Objective-C 0.02% Objective-C++ 0.14% Assembly 1.26% HTML 1.24% CSS 0.03% Roff 0.31%
netcoin digital currency proof-of-stake pir stake reward blockchain fair-weight

netcoin's Introduction

Codacy Badge

badge

alt text

main repo

Before starting ensure you have the correct dependancys (22/01/2019) installed to compile the netcoin wallet for your platform. These can be found from the links provided in the above file or below during system specific setups. Only use the links and steps outlined above if your system does not carry dependancy packages such as ubuntu and homebrew or if you are familiar with editing the makefiles/.pro to reflect your system paths and building dependencies from scratch. However if you wish to learn this process see dependancy build instructions.

Below you shall find links to the specific build environment instructions. These have been written to aid you in self compiles however you should always seek to use precompiled binaries for your system when available to ensure you are on the latest stable release intended for mainstream consumption.

compiling headless daemon on unix platform

compiling headless daemon on osx platform

compiling headless daemon on windows platform

compiling QT on multiple platforms

Any issues/bugs please see below first to check if your bug/issue was submitted/solved before posting a new issue please try be as clear and concise about the actual issue e.g "wallet crashed" would not be enough detail to do anything and the issue will be closed. However "wallet crashed" I was trying to send coins from (address a) to (address b) both within the same wallet and the wallet reports I have sent 0 coins out but looking at the explorer (insert link with txid) it seems the coins sent but I cannot see they have moved locally, expected outcome was to see funds leave and return. recreatable : yes platform : osx other platforms affected : yes/no/untested build version : 3.0.0.0-stable result : crash/continued to run

If formatted correctly bugs shall be assigned to a member of the team for recreation and resolve. The above bug would receive status closed as an intentional bug(feature) of the wallet.

bug/issue submission

NetCoin (NET) - Litecoin / PeerCoin POW/POSV hybrid with Personal Investment Rate

The default ports: Connection 11310, and RPC 11311 No premine.

POS Details.

POS activated on block 420,000 - Hard fork.

POSV stake once each month to earn highest possible rewards incentivises running full nodes to increase POS security. Coin age gradually slows after 1 month with an aging half life of 90 days.

Personal Investment Rate or PIR is a special reward algorithm unique for a PoS coin. The APR Stake reward increases in line with the value of the coins staked on a sliding scale.In other words the more Netcoin you own and stake the bigger the reward you earn. The last 3 years Netcoin had 3 different levels of PIR and it reached the last and final level end 2016.

The reward rates now are as follows:

                               NET  |  APR
                      ------------- | -------------
                              1-999 | 2%
                          1000-9999 | 4%
                        10000-99999 | 6%
                      100000-999999 | 7%
                    1000000-9999999 | 8%
                          10000000+ | 10%

120 seconds block time POS. 1 hour minimum age for staking. 30 days max age. FAIR-WEIGHT protocol replaces the idea of 'block splitting' to prevent very large NET holders signing lots of POS blocks.

70 confirmations for minted blocks

Pow ended on block xxx last official pow block

Q4- 2018 security/chain breach occurs meaning cryptopians funds were stolen, this was an exploit in the workings between central ledgers (exchange) and the chains state all netcoins held at cryptopia were removed from their wallets and or sold into the hands of legitimate users. There is no way to tell if this exploit resulted in real transaction reversals however it is clear that any confirming stakes were wiped out aka stake sniping which is how it was picked up. Large orphan stakes. Once identified cryptopia were asked to up the confirm limits to try and stem the attack in the hopes that the network would bounce back to good standing and the attackers efforts stemmed, unfortunately this made things slightly worse as it seems the attacker had already played out this scenario and hours later attacked again. Markets were paused while we (netcoin) along with cryptopia came to terms with the damages involved. A few months investigating lead us to where we are today (22/1/2019) cryptopias ledgers are down a whopping 265,746,657 netcoins and the chain reports no changes no duplications and no more coins than the expected 10% maximum and 2% minimum inflation through proof of stake rewards, this leaves us in a sticky situation as 2 situations arise:

  1. cryptopia is held accountable for all its ledgers its users keys and ultimately the loss of these coins and they have to purchase these back

  2. The chain was at fault regardless of it only manipulating centrally held ledgers due to transaction malleability/rewinds/51%/other attack meaning we are responsible for ensuring users funds are replaced.

So with the above, scenario 1 and 2 are equally relevant. It was only ledgers affected which allowed the user/s to extract all funds from the site and thus we can ask that it is reimbursed however as the developers of the coin we have responsibility to ensure the safe keeping of funds also, which has meant the decision to POST MINE (sickens me to say it, an after party premine) designed to release 300,000,000 netcoins at a predefined time to a single address controlled by the foundation to later release into cryptopias custody, to allow them to let users withdraw their funds (at minimum) and allow continued trading hereafter was decided anything left over (change) shall be retained by the foundation within the same wallet address for transparency. It shall be used for staking only! Any stake rewards from this shall be divided up between chain needs (explorers, nodes,advertising,bounties and rewards). The balance shall never be allowed to fall below the amount left after reimbursement.

Every effort is being made to ensure the future success of netcoin as a cryptocurrency of the people. We thank you for your continued support these last 5 years and hope to see us all going from strength to strength onwards 2019

Development process

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

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 they don't match the project's coding conventions (see coding.txt) or are controversial.

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

Feature branches are created when there are major new features being worked on by several people.

From time to time a pull request will become outdated. If this occurs, and the pull is no longer automatically mergeable; a comment on the pull will be used to issue a warning of closure. The pull will be closed 15 days after the warning if action is not taken by the author. Pull requests closed in this manner will have their corresponding issue labeled 'stagnant'.

Issues with no comments will be given a similar warning, and closed after 15 days from their last activity. Issues closed in this manner will be labeled 'stale'.

netcoin's People

Contributors

bigjohnson124 avatar dekkersarjan avatar meee32 avatar nerdlabs001 avatar netcoin-who avatar regtable avatar tepelstreeltje avatar

Stargazers

 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  avatar  avatar  avatar  avatar

netcoin's Issues

Segmentation fault

Compiled fine, but get a seg fault when I go to run it. Haven't opened the code or anything, just letting ya'll know. Is it because a few lines in the Pro file are set wrong? Seg fault usually means a memory error.

QT compiling Issue

Hi,
I am trying to compile the coin on Raspberry 4 with qt build. But I am getting this error while compiling using make command.

/usr/local/openssl/include -Ibuild -Ibuild src/qt/networkpage.h -o build/moc_networkpage.cpp
/usr/lib/arm-linux-gnueabihf/qt4/bin/moc -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -DUSE_UPNP=1 -DSTATICLIB -DMINIUPNP_STATICLIB -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -I/usr/local/BerkeleyDB.4.8/include -I/usr/local/openssl/include -Ibuild -Ibuild src/qt/stakereportdialoge.h -o build/moc_stakereportdialoge.cpp
/usr/lib/arm-linux-gnueabihf/qt4/bin/rcc -name bitcoin src/qt/bitcoin.qrc -o release/qrc_bitcoin.cpp
g++ -c -pipe -fstack-protector-all --param ssp-buffer-size=1 -O2 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat-security -Wno-unused-parameter -Wstack-protector -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -DUSE_UPNP=1 -DSTATICLIB -DMINIUPNP_STATICLIB -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -I/usr/local/BerkeleyDB.4.8/include -I/usr/local/openssl/include -Ibuild -Ibuild -o build/intro.o src/qt/intro.cpp
g++ -c -pipe -fstack-protector-all --param ssp-buffer-size=1 -O2 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat-security -Wno-unused-parameter -Wstack-protector -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -DUSE_UPNP=1 -DSTATICLIB -DMINIUPNP_STATICLIB -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -I/usr/local/BerkeleyDB.4.8/include -I/usr/local/openssl/include -Ibuild -Ibuild -o build/overviewpage.o src/qt/overviewpage.cpp
In file included from src/qt/shoppingpage.h:5,
from src/qt/shoppingpage.cpp:1:
src/main.h: In member function ‘void CBlock::print() const’:
src/main.h:943:16: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 10 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=]
printf("CBlock(hash=%s, PoW=%s, ver=%d, hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%08x, nNonce=%u, vtx=%" PRI64u ", vchBlockSig=%s)\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.h:950:13:
vtx.size(),
~~~~~~~~~~
In file included from src/qt/stakereportdialoge.cpp:15:
src/main.h: In member function ‘void CBlock::print() const’:
src/main.h:943:16: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 10 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=]
printf("CBlock(hash=%s, PoW=%s, ver=%d, hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%08x, nNonce=%u, vtx=%" PRI64u ", vchBlockSig=%s)\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.h:950:13:
vtx.size(),
~~~~~~~~~~
In file included from src/qt/shoppingpage.cpp:2:
build/ui_shoppingpage.h: In member function ‘void Ui_ShoppingPage::setupUi(QWidget*)’:
build/ui_shoppingpage.h:896:55: error: ‘PlaceholderText’ is not a member of ‘QPalette’
palette1.setBrush(QPalette::Active, QPalette::PlaceholderText, brush6);
^~~~~~~~~~~~~~~
build/ui_shoppingpage.h:915:57: error: ‘PlaceholderText’ is not a member of ‘QPalette’
palette1.setBrush(QPalette::Inactive, QPalette::PlaceholderText, brush7);
^~~~~~~~~~~~~~~
build/ui_shoppingpage.h:936:57: error: ‘PlaceholderText’ is not a member of ‘QPalette’
palette1.setBrush(QPalette::Disabled, QPalette::PlaceholderText, brush9);
^~~~~~~~~~~~~~~
In file included from src/qt/overviewpage.h:6,
from src/qt/overviewpage.cpp:1:
src/main.h: In member function ‘void CBlock::print() const’:
src/main.h:943:16: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 10 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=]
printf("CBlock(hash=%s, PoW=%s, ver=%d, hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%08x, nNonce=%u, vtx=%" PRI64u ", vchBlockSig=%s)\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.h:950:13:
vtx.size(),
~~~~~~~~~~
g++ -c -pipe -fstack-protector-all --param ssp-buffer-size=1 -O2 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat-security -Wno-unused-parameter -Wstack-protector -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -DUSE_UPNP=1 -DSTATICLIB -DMINIUPNP_STATICLIB -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -I/usr/local/BerkeleyDB.4.8/include -I/usr/local/openssl/include -Ibuild -Ibuild -o build/rpcconsole.o src/qt/rpcconsole.cpp
make[1]: *** [Makefile.Release:2849: build/shoppingpage.o] Error 1
make[1]: *** Waiting for unfinished jobs....
src/qt/overviewpage.cpp: In member function ‘void OverviewPage::updateStatistics()’:
src/qt/overviewpage.cpp:549:24: warning: unused variable ‘lastUpdate’ [-Wunused-variable]
static int64_t lastUpdate = 0;
^~~~~~~~~~
src/qt/overviewpage.cpp:582:23: warning: comparison of integer expressions of different signedness: ‘uint64_t’ {aka ‘long long unsigned int’} and ‘in ’ [-Wsign-compare]
if(nNetworkWeight > stakemaxPrevious)
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/qt/overviewpage.cpp:587:28: warning: comparison of integer expressions of different signedness: ‘uint64_t’ {aka ‘long long unsigned int’} and ‘in ’ [-Wsign-compare]
else if(nNetworkWeight < stakemaxPrevious)
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt4/QtGui/qbrush.h:47,
from /usr/include/qt4/QtGui/qpalette.h:47,
from /usr/include/qt4/QtGui/qwidget.h:50,
from /usr/include/qt4/QtGui/QWidget:1,
from src/qt/overviewpage.h:4,
from src/qt/overviewpage.cpp:1:
/usr/include/qt4/QtCore/qvector.h: In instantiation of ‘void QVector::realloc(int, int) [with T = QString]’:
/usr/include/qt4/QtCore/qvector.h:337:3: required from ‘void QVector::detach_helper() [with T = QString]’
/usr/include/qt4/QtCore/qvector.h:123:84: required from ‘QVector::QVector(const QVector&) [with T = QString]’
src/qt/qcustomplot.h:1102:54: required from here
/usr/include/qt4/QtCore/qvector.h:503:25: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘QVector::Data’ {aka ‘struct QVectorTypedData’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
::memcpy(x.p, p, sizeOfTypedData() + (qMin(aalloc, d->alloc) - 1) * sizeof(T));
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt4/QtGui/qbrush.h:47,
from /usr/include/qt4/QtGui/qpalette.h:47,
from /usr/include/qt4/QtGui/qwidget.h:50,
from /usr/include/qt4/QtGui/QWidget:1,
from src/qt/overviewpage.h:4,
from src/qt/overviewpage.cpp:1:
/usr/include/qt4/QtCore/qvector.h:94:8: note: ‘QVector::Data’ {aka ‘struct QVectorTypedData’} declared here
struct QVectorTypedData : private QVectorData
^~~~~~~~~~~~~~~~
src/qt/overviewpage.cpp: At global scope:
src/qt/overviewpage.cpp:549:24: warning: ‘lastUpdate’ defined but not used [-Wunused-variable]
static int64_t lastUpdate = 0;
^~~~~~~~~~
make[1]: Leaving directory '/home/pi/wallets/netcoin/netcoin-3.0.0'
make: *** [Makefile:34: release] Error 2


I followed this instruction: https://github.com/netcoinfoundation/netcoin/blob/master/doc/readme-qt.rst
qmake
make

Can anybody please help?

What options are available to fix the libdb5.0 reverse incompatibility issue?

The Conundrum

After pouring over the source files and running several searches on various chat forums etc, I finally stumbled across the notice at the very bottom of the README file concerning the libdb4.x - libdb5.x incompatibility. (Please consider moving this notice from the bottom of the document and putting it into the appropriate section addressed to Ubuntu users.) While I'm glad to have finally discovered the root cause of the issue, I am left with no solutions.

Reverting my system just so that I can complete compiling a Net Core wallet doesn't really sound worth the hassle. Is there any other way of bridging this gap? If not, are there any plans to update the Net wallet to handle compatibility with libdb5.x ?

A Few Additional Thoughts

Please consider making a revised installation guide. The current edition is rough and includes several typos, grammar errors, and is very vague. There are also multiple assumptions made as to preexisting knowledge (regarding the package building process, terminal use, fluency with bash, etc etc...). I have a moderate level of experience using Linux and I found the guide to be very difficult to use. I'd love to see the Netcoin project grow in usage and in value, but until the software becomes easy to use that is unlikely to occur.

Unable to connect to peers

I'm running Peercoin, Bitcoin, and Netcoin at the same time. The only wallet that has less than 10 peers at any time is Netcoin. I'm using an updated peers file.

Launch options not reflecting in GUI

When using launch options (command-line arguments, config file), changes do not reflect in the GUI.
This is expected behavior as modern Bitcoin-like wallets show that launch arguments have changed GUI behavior. Below are examples of the Peercoin, Bitcoin, and Netcoin wallets launched with arguments.
image
image
image

Would it be possible to update the wallet?

Unable to compile.

I already compiled previous netcoin and about to update to latest but stuck.
I don't know why I see this weird encoding broken error messages.
Maybe you forgot to commit the updated file?

------ ERROR MESSAGE -------

/bin/sh ../share/genbuild.sh obj/build.h
g++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DUSE_IPV6 -DBOOST_SPIRIT_THREADSAFE -I/home/ubuntu/walletsrc/netcoin/src -I/home/ubuntu/walletsrc/netcoin/src/obj -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2 -MMD -MF obj/wallet.d -o obj/wallet.o wallet.cpp
In file included from net.h:17:0,
from main.h:13,
from db.h:9,
from txdb.h:11,
from wallet.cpp:9:
util.h: In function ‘std::string i64tostr(int64_t)’:
util.h:262:12: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘int64_t {aka long int}’ [-Wformat]
In file included from main.h:13:0,
from db.h:9,
from txdb.h:11,
from wallet.cpp:9:
net.h: In member function ‘void CNode::AskFor(const CInv&)’:
net.h:325:149: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘int64_t {aka long int}’ [-Wformat]
In file included from db.h:9:0,
from txdb.h:11,
from wallet.cpp:9:
main.h: In member function ‘void CBlock::print() const’:
main.h:1167:67: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 10 has type ‘std::vector::size_type {aka long unsigned int}’ [-Wformat]
main.h: In member function ‘std::string CBlockIndex::ToString() const’:
main.h:1423:16: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 13 has type ‘uint64_t {aka long unsigned int}’ [-Wformat]
wallet.cpp: In member function ‘bool CWallet::AddToWallet(const CWalletTx&)’:
wallet.cpp:543:27: error: ‘wtx’ was not declared in this scope
wallet.cpp:546:46: error: ‘fInsertedNew’ was not declared in this scope
wallet.cpp: At global scope:
wallet.cpp:557:5: error: expected unqualified-id before ‘return’
wallet.cpp:558:1: error: expected declaration before ‘}’ token
wallet.cpp: In member function ‘bool CWallet::AddToWallet(const CWalletTx&)’:
wallet.cpp:556:5: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [obj/wallet.o] Error 1

Bug on kernel

netcoinbug

when i try open keep like that and replace old block run. when some new block found[some reason electric down]. it''s bug~

explain guys~

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.