Code Monkey home page Code Monkey logo

bee-clef's People

Contributors

attila-lendvai avatar istae avatar ralph-pichler avatar vandot 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  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  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  avatar  avatar

Watchers

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

bee-clef's Issues

Don't close process if bee connect with wrong address

I'm trying to configure a multi bee environement with an only bee-clef instance. So I'm trying to connect to clef using the --clef-signer-ethereum-address option.

When I try to connect the first node all is fine. When I try to connect a second node I receive this kind of log (hiding address), and process terminate:

INFO [01-02|23:28:23.208] Using stdin/stdout as UI-channel
INFO [01-02|23:28:23.778] Loaded 4byte database                    embeds=146,841 locals=8 local=/app/config/4byte.json
{"jsonrpc":"2.0","id":1,"method":"ui_onInputRequired","params":[{"title":"Master Password","prompt":"Please enter the password to decrypt the master seed","isPassword":true}]}
INFO [01-02|23:28:26.065] Rule engine configured                   file=/app/config/rules.js
INFO [01-02|23:28:26.065] Starting signer                          chainid=100 keystore=/app/data/keystore light-kdf=true advanced=false
INFO [01-02|23:28:26.094] HTTP endpoint opened                     url=http://[::]:8550/
{"jsonrpc":"2.0","method":"ui_onSignerStartup","params":[{"info":{"extapi_http":"http://[::]:8550/","extapi_ipc":"n/a","extapi_version":"6.1.0","intapi_version":"7.0.1"}}]}
INFO [01-02|23:28:28.593] Op approved
INFO [01-02|23:28:28.611] Op approved
INFO [01-02|23:28:29.362] Op approved
INFO [01-02|23:28:29.380] Op approved
WARN [01-02|23:28:29.380] Key does not exist                       key=0x *************MyEtherAddress***************

Leaving out the problem of why it says that key doesn't exist (I need to investigate more), if a client with a wrong key tries to connect, the process should not be killed. It is serving all other nodes, and must continue to live.

Export ethereum keys

Story

As a user of bee-clef, I want to import my bee-clef keys into external wallets, such that I can spend the BZZ which I earned through Swarm

Background

I just found out that I can't cd into the /var/lib/bee-clef directory and hence don't know how to access my key files. It would perhaps be nice to have some sort of tooling that would read the keys and print them to the terminal (if this is secure). Additionally, there needs to be documentation (walk through style) which helps the user on migrating their bee-clef keys into a wallet like Metamask

Integrate with external wallet

Story

As a user of bee-clef, I want to import my bee-clef keys into external wallets, such that I can spend the BZZ which I earned through Swarm

Background

I just found out that I can't cd into the /var/lib/bee-clef directory and hence don't know how to access my key files. It would perhaps be nice to have some sort of tooling that would read the keys and print them to the terminal (if this is secure). Additionally, there needs to be documentation (walk through style) which helps the user on migrating their bee-clef keys into a wallet like Metamask

Connection refused, Error: Init Chain

Hello everyone,
I've installed Bee several times (with Bee Clef) and tried to set it up. Unfortunately I can't connect to the Bee service because of "Error: init chain: dial eth client: dial tcp [::1]:8546: connect: connection refused". I've tried to set up a port and to determine the NAT exposed adress. Thats my IPv4 right? The log also says clef is not enabled, but my systemctl status says it is running and active. Pls help

brew default path on M1 macs

In Brew v3 that supports new Macs M1, local path starts with /opt/homebrew and no more /usr/local

scripts could add :

#LOCAL_DIR=/usr/local
LOCAL_DIR=/opt/homebrew

and then use $LOCAL_DIR

Failed to open master, rules disabled

clef container shows this log:
Failed to open master, rules disabled err="failed stat on /app/data/masterseed.json: stat /app/data/masterseed.json: no such file or directory

I installed bee and clef by docker-compose:
version: "3"

services:
clef-01:
image: ethersphere/clef:0.5.0
restart: unless-stopped
environment:
- CLEF_CHAINID=1
volumes:
- ./volumes/clef-01:/app/data
command: full
bee-01:
image: ethersphere/bee:1.0.0
restart: unless-stopped
environment:
- BEE_API_ADDR
- BEE_BLOCK_TIME
- BEE_BOOTNODE
- BEE_BOOTNODE_MODE
- BEE_CLEF_SIGNER_ENABLE
- BEE_CLEF_SIGNER_ENDPOINT=http://clef-01:8550
- BEE_CONFIG
- BEE_CORS_ALLOWED_ORIGINS
- BEE_DATA_DIR
- BEE_CACHE_CAPACITY
- BEE_DB_OPEN_FILES_LIMIT
- BEE_DB_BLOCK_CACHE_CAPACITY
- BEE_DB_WRITE_BUFFER_SIZE
- BEE_DB_DISABLE_SEEKS_COMPACTION
- BEE_DEBUG_API_ADDR
- BEE_DEBUG_API_ENABLE
- BEE_GATEWAY_MODE
- BEE_GLOBAL_PINNING_ENABLE
- BEE_FULL_NODE
- BEE_NAT_ADDR
- BEE_NETWORK_ID
- BEE_P2P_ADDR
- BEE_P2P_QUIC_ENABLE
- BEE_P2P_WS_ENABLE
- BEE_PASSWORD
- BEE_PASSWORD_FILE
- BEE_PAYMENT_EARLY
- BEE_PAYMENT_THRESHOLD
- BEE_PAYMENT_TOLERANCE
- BEE_POSTAGE_STAMP_ADDRESS
- BEE_RESOLVER_OPTIONS
- BEE_SWAP_ENABLE
- BEE_SWAP_ENDPOINT
- BEE_SWAP_FACTORY_ADDRESS
- BEE_SWAP_LEGACY_FACTORY_ADDRESSES
- BEE_SWAP_INITIAL_DEPOSIT
- BEE_SWAP_DEPLOYMENT_GAS_PRICE
- BEE_TRACING_ENABLE
- BEE_TRACING_ENDPOINT
- BEE_TRACING_SERVICE_NAME
- BEE_TRANSACTION
- BEE_VERBOSITY
- BEE_WELCOME_MESSAGE
- BEE_MAINNET
ports:
- "${API_ADDR:-10133}${BEE_API_ADDR:-:1633}"
- "${P2P_ADDR:-10134}${BEE_P2P_ADDR:-:1634}"
- "${DEBUG_API_ADDR:-127.0.0.1:10135}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
- ./volumes/bee-01:/home/bee/.bee
command: start
depends_on:
- clef-01

see the clef-01 volumes:
volumes:
- ./volumes/clef-01:/app/data
maybe container can not create the masterseed.json file.
And i see other guys found the same err.
How to fix it?

Installation failing on Raspberry Pi

I'm having issues installing Bee Clef on my Raspberry Pi:

pi@raspberry:~ $ sudo dpkg -I bee-clef_0.4.12_armv7.deb
Selecting previously unselected package bee-clef.
(Reading database . . . 136994 files and directories currently installed.)
Preparing to unpack bee-clef_0.4.12_armv7.deb . . .
Unpacking bee-clef (0.4.12) . . .
Setting up bee-clef (0.4.12) . . .
Installing new version of config file /etc/bee-clef/4byte.json . . .
dpkg: error processing package bee-clef (--install):
subprocess installed post-installation script returned error exit status 1
Errors were encountered when processing:
bee-clef

My system information is (via uname -a):
Linux raspberry 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux

Any help is appreciated. Thanks!

fail to install bee-clef on Ubuntu 20

After I paste it in my terminal:
wget https://github.com/ethersphere/bee-clef/releases/download/v0.4.12/bee-clef_0.4.12_amd64.deb
sudo dpkg -i bee-clef_0.4.12_amd64.deb

Terminal show this:
(Reading database ... 280058 files and directories currently installed.)
Preparing to unpack bee-clef_0.4.12_amd64.deb ...
Unpacking bee-clef (0.4.12) ...
dpkg: error processing archive bee-clef_0.4.12_amd64.deb (--install):
trying to overwrite '/usr/bin/clef', which is also in package clef 1.10.3+build26180+focal
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
bee-clef_0.4.12_amd64.deb

Thanks for your help!!!

Get "Error: init chain: dial eth client: dial tcp 127.0.0.1:8546: connect: connection refused" when running bee service

Hi there,

I'v installed bee-clef and bee by following official guide https://docs.ethswarm.org/docs/installation/install.

The status of bee-clef in systemd is activate and good.

Once I run bee service, log shows the error Error: init chain: dial eth client: dial tcp 127.0.0.1:8546: connect: connection refused.

I googled the error, and it looks like clef problem.
I did check the configure file which is /etc/bee-clef/bee-config.yaml, there is no useful info since it is default one (also there is no step to configure it in the official guide).
I did netstat to check port status, no process listen on 8546.

So I think there should be some mistake in service config or official guide.

Any advice? Thanks in advance.

为什么挖不到票?

Network normal link, bandwidth is 500m, computer configuration is very high, hard disk storage 1t. Network test node has 100, where the problem?

FAILURE TO CONNECT TO CLEF SIGNER

swarm_error_2

System---
Windows 10 Enterprise
WSL2 Docker back end
Ubuntu 20.04 WSL windows app AMD64
VS Code Insiders 1.56
NVM 0.37
BASH TERMINAL
BEE-CLEF 4.10.0 (manual install)
BEE - 0.5.3 (manual install)
swarn_error

edit added second screenshot showing path format usage in Bee start configattempted both with and without url=foo
edit2 i just noticed I have the incorrect resolver syntax, should be braced [ "https://cloudflare-eth.com" ], now re-attempting connection
edit3 figured out IPC linkage but now clef is saying that the path of my ethereum keystore is not a directory and I know the path and keystore are in fact correct because as I mentioned, I had already created the account, attested to rules.js and successfully uploaded files to Ethereum before this update and I am using the same info that I previously saved
edit 4* additionally I did experience the same issue described in issue #28 re-masterseed****I am unable to run bee nor clef at all at this point**

I am not sure what occurred over the last few updates between CLEF 4.7 and BEE 4.9 up to now CLEF 4.10 & BEE 0.5.3 but I did not have this issue before the updates, I could run swarm and upload test files no problem at all. And now I have this. Even on my Linux only PC, I have a similar issue but thats for another post. The error is described below..

Bee is pointed directly to CLEFs ipc endpoint, "/home/usrname/.clef/clef.ipc" yet cannot find the endpoint. I imagine I need to instruct SUDO somewhere in config? Bee now has account/user auto setups but what are happening with those that already created accounts, checquebooks, backups and have been running nodes? Where are the instructions for proper integration? Website says to look at "all the files to be found in the bee-clef repository" without any explanation on actual implementation. Perhaps the docss are in the process of being updated now considering this update just occurred. But I am one frustrated coder who., after 9 plus months of developing 15 hours a day, finally went to deploy his DApp today via Swarm and ran into seemingly unnecessary issues. But this is what makes our job so great right? :-) Thanks in advance! Big fan of swarm and the hard work you all do! Please let me know if you need more system details! I am thinking it may be best to deploy from Linux and or Docker rather then WSL2. If you need more details, please let me know!

Add script for generate a new available account

With a view to simplifying life for those who intend to use bee-clef with multiple accounts, and meanwhile a more complex and complete solution will come, add a bash script for generate a new account.

There are different commands necessary to add and initialize a new account, and these are: newaccount, setpw and attest, and each with specific parameters. A script could be very useful. Current scripts only try to generate first account, if it doesn't exist.

bee-clef down with success

sometimes bee-clef down (when cashout or maybe resource problem),

but it does not restart automatically, because clef down with success message.

so i should change bee-clef.service configuration from 'Restart=on-failure' to 'Restart=always'.

i think it is not good way because sometimes i could want to stop bee-clef.

High RAM usage

Hi,

I don't have a lot of information yet, but it appears that clef's RAM usage can quickly get out of control for no specific reason. As part of my 25 bee nodes on one server challenge, I often have to restart clef services because they consume up to 20 GB of RAM (I guess it could be more, but I didn't really want to find out).

It seems to happen when the bee containers are restarted while the clef ones are running, although I'm not sure about that.

Restart the services resolves the issue entirely for now.

MACOS start bee-clef failed!

start command :

brew tap ethersphere/tap
brew install swarm-clef
brew services restart swarm-clef

Error log:
tail -f /usr/local/var/log/swarm-clef/swarm-clef.log

Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storageflag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storage
   attest  Attest that a js-file is to be used
   setpw   Store a credential for a keystore file
   help    Shows a list of commands or help for one command

GLOBAL OPTIONS:flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storage
   attestflag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storage
   attest  Attest that a js-file is to be usedflag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storageIncorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
Incorrect Usage. flag provided but not defined: -chainid

flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storage
   attest  Attest that a js-file is to be used
   setpw   Store a credential for a keystore file
   help    Shows a list of commands or help for one command

GLOBAL OPTIONS:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
   init    Initialize the signer, generate secret storage
   attestflag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:
flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

VERSION:flag provided but not defined: -chainid
Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]
Incorrect Usage. flag provided but not defined: -chainid

Incorrect Usage. flag provided but not defined: -chainid

Clef [global options] command [command options] [arguments...]

Extremely high IO

According to docker stats:

CONTAINER ID   NAME             CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
b6818110e6a1   swarm-2_bee_1    86.87%    5.457GiB / 62.82GiB   8.69%     1.14GB / 136MB    7.76GB / 59.2GB   33
1f0cd61ea368   swarm-1_bee_1    62.14%    4.779GiB / 62.82GiB   7.61%     917MB / 111MB     5.45GB / 61.5GB   30
a001af088548   swarm-0_bee_1    122.15%   7.407GiB / 62.82GiB   11.79%    1.17GB / 76.5MB   5.36GB / 83.2GB   27

For each of those bee nodes, there is a 50 to 70 times amplification from data ingested through network to disk writes. It looks like the node is constantly writing and deleting data, which causes an extremely high disk usage for a quite small amount of data.

extreme high cpu usage

bee-clef version 0.6.0

why bee-clef high cpu? i have 56 core, clef use 5000% usage ....

Massive logs like this "INFO [07-29|20:28:30.939] Op approved"

i import 10 account and up 10 swarm node with docker.

hereis docker stats

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2a67e5035000 0bc5de5b35a062c7dd0b96379586c129b3995d89 5.11% 252.5MiB / 6GiB 4.11% 22.4MB / 23.1MB 154MB / 155MB 35
5149e1b30541 dc19adf3e1b48e0026ef00fa6981ef96911063a5 4.24% 160.1MiB / 6GiB 2.61% 14.9MB / 22.8MB 166MB / 1.05GB 33
1ea068551d38 41e63b32c6a23e8f4b7403dac7c9513465e37460 122.21% 180.2MiB / 6GiB 2.93% 10.5MB / 11.3MB 146MB / 854MB 32
e1dadf8ef736 89b0d3cd3effb869fa433035fc57e0c8e0aea55a 124.36% 177.1MiB / 6GiB 2.88% 4.95MB / 5.11MB 42MB / 2.89GB 29
762df3a3ff3c c2b15b5c09a06a0ff4b29ee19b1aa8541007b936 0.62% 115.3MiB / 6GiB 1.88% 5.46MB / 5.62MB 47.2MB / 951MB 31
5b48c3a0ffa1 ef22e55c4747723c11ea5b135e7431059ff9bccc 0.34% 170.2MiB / 6GiB 2.77% 5.31MB / 5.39MB 53.4MB / 1.41GB 32
02ecec8912df eeb24b6fc557f0e9a08a6ee3c9843ad5288f7f88 7.48% 288.3MiB / 6GiB 4.69% 22.7MB / 26.7MB 151MB / 112MB 37
21e592fdb2ab 77f5e215239c0d1de008f775429117af1a3ca920 5.72% 179.6MiB / 6GiB 2.92% 6.71MB / 7.78MB 36.6MB / 2.73GB 32
27417586e0c0 ee3231f0bcb2ee4a51551e9fa76b8b078f6f91cd 6.09% 239.6MiB / 6GiB 3.90% 19.4MB / 18.7MB 36.9MB / 37.6MB 34
f4d6c2338231 86ad22dd319800a5ee42ac2051e20c2f7d58711c 0.91% 149.4MiB / 6GiB 2.43% 8.54MB / 8.4MB 47.4MB / 804MB 32
8018f1bdd500 cadvisor 5.99% 98.02MiB / 62.77GiB 0.15% 46.6kB / 450kB 22.8MB / 0B 73
84d35a64407b bee-clef 5154.62% 13.97GiB / 62.77GiB 22.26% 9.04MB / 5.68MB 32MB / 0B 65

now, I have limited the number of cpus for bee-clef to 8.

Storage incentive ABI

Problem

With the release of storage incentives, new contracts, and new ABIs have been deployed, that require transactions to be initiated from bee.

clef provides security by whitelisting function signatures (4bytes).

Solution

Update the 4byte.json to whitelist the new signatures.

Bee-clef as a windows service

As a user Windows user of bee-clef, I want to run Bee-clef as a service in tandem with bee, such that, without too much effort my keys are protected and interoperable with Ethereum.

Reporting Vulnerability

Hello!

I hope you are doing well!

We are a security research team. Our tool automatically detected a vulnerability in this repository. We want to disclose it responsibly. GitHub has a feature called Private vulnerability reporting, which enables security research to privately disclose a vulnerability. Unfortunately, it is not enabled for this repository.

Can you enable it, so that we can report it?

Thanks in advance!

PS: you can read about how to enable private vulnerability reporting here: https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository

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.