ontio / ontology Goto Github PK
View Code? Open in Web Editor NEWOfficial Go implementation of the Ontology protocol. https://dev-docs.ont.io/#/
License: GNU Lesser General Public License v3.0
Official Go implementation of the Ontology protocol. https://dev-docs.ont.io/#/
License: GNU Lesser General Public License v3.0
➜ ontology git:(master) ./ontology
2018/06/16 17:23:03.093241 [INFO ] GID 1, Config init success
Password:
Using default account:
2018/06/16 17:23:07.436687 [INFO ] GID 1, Account init success
2018/06/16 17:23:07.489227 [INFO ] GID 1, InitCurrentBlock currentBlockHash 4c7a6e062829b488833e9729774e39581fe2f8138c60a8cb9f3f2f8a83734292 currentBlockHeight 0
2018/06/16 17:23:07.489489 [INFO ] GID 1, Ledger init success
2018/06/16 17:23:07.490270 [INFO ] GID 1, getGasPriceConfig: gasPrice 0 configure 0
2018/06/16 17:23:07.490936 [INFO ] GID 1, TxPool init success
2018/06/16 17:23:07.491117 [INFO ] GID 46, txpool-tx actor started and be ready to receive tx msg
2018/06/16 17:23:07.491220 [INFO ] GID 47, stateless-validator: started and be ready to receive txn
2018/06/16 17:23:07.491396 [INFO ] GID 44, txpool-verify actor: started and be ready to receive validator's msg
2018/06/16 17:23:07.491586 [INFO ] GID 1, init peer ID to 8824763387940755546
2018/06/16 17:23:07.491638 [INFO ] GID 49, stateful-validator: started and be ready to receive txn
2018/06/16 17:23:07.491597 [INFO ] GID 48, stateless-validator: started and be ready to receive txn
2018/06/16 17:23:07.491756 [INFO ] GID 45, txpool actor started and be ready to receive txPool msg
2018/06/16 17:23:07.491999 [INFO ] GID 82, p2p actor started
2018/06/16 17:23:07.492079 [INFO ] GID 1, start listen on sync port 20338
2018/06/16 17:23:07.492149 [INFO ] GID 1, dual port mode not supported,keep single link
2018/06/16 17:23:07.492209 [INFO ] GID 1, MessageRouter start to parse p2p message...
2018/06/16 17:23:07.492299 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:10.492629 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:13.495217 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:13.692106 [INFO ] GID 94, peer 100.111.105.251:63054 connect with 13.78.98.114:20338 with tcp
2018/06/16 17:23:13.692163 [INFO ] GID 95, peer 100.111.105.251:63052 connect with 13.78.82.32:20338 with tcp
2018/06/16 17:23:13.692131 [INFO ] GID 96, peer 100.111.105.251:63053 connect with 13.78.99.52:20338 with tcp
2018/06/16 17:23:13.692132 [INFO ] GID 97, peer 100.111.105.251:63051 connect with 13.78.81.96:20338 with tcp
2018/06/16 17:23:13.862797 [ERROR] GID 101, read connection error EOF
2018/06/16 17:23:13.862848 [ERROR] GID 80, read connection error EOF
2018/06/16 17:23:13.862797 [ERROR] GID 59, read connection error EOF
2018/06/16 17:23:13.862824 [ERROR] GID 27, read connection error EOF
2018/06/16 17:23:16.495901 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:19.496386 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:19.612600 [INFO ] GID 132, peer 100.111.105.251:63057 connect with 13.78.82.32:20338 with tcp
2018/06/16 17:23:19.612670 [INFO ] GID 131, peer 100.111.105.251:63055 connect with 13.78.98.114:20338 with tcp
2018/06/16 17:23:19.612694 [INFO ] GID 133, peer 100.111.105.251:63056 connect with 13.78.99.52:20338 with tcp
2018/06/16 17:23:19.612622 [INFO ] GID 134, peer 100.111.105.251:63058 connect with 13.78.81.96:20338 with tcp
2018/06/16 17:23:19.723688 [ERROR] GID 137, read connection error EOF
2018/06/16 17:23:19.723773 [ERROR] GID 146, read connection error EOF
2018/06/16 17:23:19.723833 [ERROR] GID 121, read connection error EOF
2018/06/16 17:23:19.723759 [ERROR] GID 120, read connection error EOF
2018/06/16 17:23:22.497999 [INFO ] GID 1, Wait for minimum connection...
2018/06/16 17:23:25.498283 [INFO ] GID 1, Wait for minimum connection...
Please answer these questions before submitting your issue. Thanks!
ontology --version
)?root@ubuntu-xenial:/vagrant/ont-build# ./ontology --version
ontology version v1.0.1-23-g966d
Yes
root@ubuntu-xenial:/vagrant/ont-build# uname -a
Linux ubuntu-xenial 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu-xenial:/vagrant/ont-build# ./ontology --config /vagrant/ont-build/config_vbft.json
2018/08/08 11:23:31.085901 [INFO ] GID 1, Load genesis config:/vagrant/ont-build/config_vbft.json
2018/08/08 11:23:31.086605 [ERROR] GID 1, initConfig error:setGenesis error:VBFT config error initConfig. MinInitStake must >= 10000!
I can run ontology with dbft.json
root@ubuntu-xenial:/vagrant/ont-build# ./ontology --config /vagrant/ont-build/config_dbft.json
2018/08/08 11:22:50.745779 [INFO ] GID 1, Load genesis config:/vagrant/ont-build/config_dbft.json
2018/08/08 11:22:50.746732 [INFO ] GID 1, Config init success
2018/08/08 11:22:50.790171 [INFO ] GID 1, deploy contract address:0239dcf9b4a46f15c5f23f20d52fac916a0bac0d
If possible, provide a recipe for reproducing the error. A complete runnable program is good. Attach the project archive with issue.
ontology runs
2018/08/08 11:23:31.086605 [ERROR] GID 1, initConfig error:setGenesis error:VBFT config error initConfig. MinInitStake must >= 10000!
Add any other context about the problem here.
root@ubuntu-xenial:/vagrant/ont-build# cat config_vbft.json
{ "SeedList": [ "192.168.0.1:20338" ], "ConsensusType":"vbft", "VBFT":{ "n":7, "c":2, "k":7, "l":112, "block_msg_delay":10000, "hash_msg_delay":10000, "peer_handshake_timeout":10, "max_block_change_view":1000, "vrf_value":"1c9810aa9822e511d5804a9c4db9dd08497c31087b0daafa34d768a3253441fa20515e2f30f81741102af0ca3cefc4818fef16adb825fbaa8cad78647f3afb590e", "vrf_proof":"c57741f934042cb8d8b087b44b161db56fc3ffd4ffb675d36cd09f83935be853d8729f3f5298d12d6fd28d45dde515a4b9d7f67682d182ba5118abf451ff1988", "peers":[ { "index":1, "peerPubkey":"1202028541d32f3b09180b00affe67a40516846c16663ccb916fd2db8106619f087527", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":1000 }, { "index":2, "peerPubkey":"120202dfb161f757921898ec2e30e3618d5c6646d993153b89312bac36d7688912c0ce", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":2000 }, { "index":3, "peerPubkey":"1202039dab38326268fe82fb7967fe2e7f5f6eaced6ec711148a66fbb8480c321c19dd", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":3000 }, { "index":4, "peerPubkey":"12020384f2729bc5d9b14dcbf17aba108261dc7ad867127e413d3c8bfb4731739687b3", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":4000 }, { "index":5, "peerPubkey":"120203362f99284daa9f581fab596516f75475fc61a5f80de0e268a68430dc7589859c", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":3000 }, { "index":6, "peerPubkey":"120203db6e37a2d897f2d61b42dcd478323a8a20c3444af4ee29653849f38d0bdb67f4", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":2000 }, { "index":7, "peerPubkey":"12020298fe9f22e9df64f6bfcc1c2a14418846cffdbbf510d261bbc3fa6d47073df9a2", "address":"TA9TVuR4Ynn4VotfpExY5SaEy8a99obFPr", "initPos":1000 } ] } }
make
go build -ldflags "-X github.com/ontio/ontology/common/config.Version=v0.6-14-g5ee3-dirty" -o ontology main.go
# github.com/ontio/ontology/account
account/file_store.go:34:2: undefined: keypair.ProtectedKey
make: *** [ontology] Error 2
git clone https://github.com/ontio/ontology.git
run
glide install
produce error:
$ glide install
[INFO] Lock file (glide.lock) does not exist. Performing update.
[INFO] Downloading dependencies. Please wait...
[INFO] --> Fetching updates for github.com/howeyc/gopass
[INFO] --> Fetching updates for github.com/gorilla/websocket
[INFO] --> Fetching updates for github.com/itchyny/base58-go
[INFO] --> Fetching updates for github.com/pborman/uuid
[INFO] --> Fetching updates for github.com/urfave/cli
[INFO] --> Fetching updates for github.com/syndtr/goleveldb
[INFO] --> Fetching updates for golang.org/x/text
[INFO] --> Fetching updates for golang.org/x/crypto
[INFO] --> Fetching updates for github.com/hashicorp/golang-lru
[INFO] --> Fetching updates for golang.org/x/sys
[INFO] --> Fetching updates for github.com/gosuri/uiprogress
[INFO] --> Fetching updates for github.com/ontio/ontology-eventbus
[INFO] --> Fetching updates for github.com/ontio/ontology-crypto
[ERROR] Update failed for github.com/ontio/ontology-crypto: github.com/ontio/ontology-crypto contains uncommitted changes. Skipping update
[ERROR] Failed to do initial checkout of config: github.com/ontio/ontology-crypto contains uncommitted changes. Skipping update
Support WASM Smart Contract and Container
It's really hard to read: --maxconninboundforsingleip
, why not --max-conn-in-bound-for-single-ip
? Is there any reason for this?
[root@VM_143_245_centos ontology]# make
go build -ldflags "-X github.com/ontio/ontology/common/config.Version=v0.8" -o ontology main.go
common/password/password.go:26:2: cannot find package "github.com/howeyc/gopass" in any of:
/data/gopath/src/github.com/ontio/ontology/vendor/github.com/howeyc/gopass (vendor tree)
/usr/local/go/src/github.com/howeyc/gopass (from $GOROOT)
/data/gopath/src/github.com/howeyc/gopass (from $GOPATH)
make: *** [ontology] 错误 1
Ontorand Consensus Engine
Hi,
I've tried to node deployment on Public test network Polaris "./ontology --networkid 2", but it didn't work as following (read connection error EOF) :
2018/07/01 17:13:58.787404 [INFO ] GID 172, peer 192.168.1.117:54856 connect with 52.221.232.201:20338 with tcp
2018/07/01 17:13:58.844318 [INFO ] GID 214, OnAddNode:10772187615756702585
2018/07/01 17:13:58.845722 [INFO ] GID 214, OnAddNode:16531974056532601916
2018/07/01 17:13:58.847156 [INFO ] GID 214, OnAddNode:13067852032383128053
2018/07/01 17:13:58.892431 [INFO ] GID 185, OnAddNode:6298344811280280623
2018/07/01 17:13:58.896282 [ERROR] GID 211, read connection error EOF
2018/07/01 17:13:58.897618 [WARN ] GID 139, unknown status to received version 3
2018/07/01 17:13:58.898812 [ERROR] GID 199, read connection error read tcp 192.168.1.117:54856->52.221.232.201:20338: use of closed network connection
2018/07/01 17:13:58.898885 [ERROR] GID 198, read connection error EOF
2018/07/01 17:13:58.928939 [INFO ] GID 200, Node info:
2018/07/01 17:13:58.929583 [INFO ] GID 200, syncState = 4
2018/07/01 17:13:58.931297 [INFO ] GID 200, consState = 0
2018/07/01 17:13:58.929741 [INFO ] GID 215, Node info:
2018/07/01 17:13:58.931596 [INFO ] GID 217, Node info:
2018/07/01 17:13:58.937903 [INFO ] GID 200, id = 16531974056532601916
Then it worked on Single-host deployment configuration "$ ./ontology --testmode --networkid 3"
2018/07/01 17:18:19.918539 [INFO ] GID 1, Rpc init success
2018/07/01 17:18:19.918733 [INFO ] GID 1, Restful init success
2018/07/01 17:18:19.919350 [INFO ] GID 1, Ws init success
2018/07/01 17:18:25.916644 [INFO ] GID 29, increment validator block height -1 != ledger block height 0
2018/07/01 17:18:25.918080 [INFO ] GID 29, current block height 0, increment validator block cache range: [0, 0)
2018/07/01 17:18:25.922694 [INFO ] GID 104, CurrentBlockHeight = 0
2018/07/01 17:18:25.924068 [INFO ] GID 29, solo actor receives block complete event. block height=1 txnum=0
2018/07/01 17:18:31.916578 [INFO ] GID 33, current block height 1, increment validator block cache range: [1, 2)
2018/07/01 17:18:31.921827 [INFO ] GID 33, solo actor receives block complete event. block height=2 txnum=0
2018/07/01 17:18:31.922764 [INFO ] GID 104, CurrentBlockHeight = 2
2018/07/01 17:18:37.916334 [INFO ] GID 117, current block height 2, increment validator block cache range: [1, 3)
2018/07/01 17:18:37.921537 [INFO ] GID 117, solo actor receives block complete event. block height=3 txnum=0
thanks!
I run make all
after cloning ontology source code, and it reports such error:
make all
go build -ldflags "-X github.com/ontio/ontology/common/config.Version=v1.0.1" -o ontology main.go
http/restful/restful/router.go:22:2: cannot find package "context" in any of:
/root/go/src/github.com/ontio/ontology/vendor/context (vendor tree)
/usr/lib/go-1.6/src/context (from $GOROOT)
/root/go/src/context (from $GOPATH)
vendor/golang.org/x/crypto/ripemd160/ripemd160block.go:12:2: cannot find package "math/bits" in any of:
/root/go/src/github.com/ontio/ontology/vendor/math/bits (vendor tree)
/usr/lib/go-1.6/src/math/bits (from $GOROOT)
/root/go/src/math/bits (from $GOPATH)
Makefile:20: recipe for target 'ontology' failed
make: *** [ontology] Error 1
and I found the go version on my ubuntu server is:
$ go version
go version go1.6.2 linux/amd64
looks a little old, but which is the latest version installed by sudo apt-get install golang-go
.
Finally, I upgrade go to v1.10 (https://github.com/golang/go/wiki/Ubuntu), it works.
go version go1.10 linux/amd64
I think we could specify the required go version in README
When i try to download ontology.exe from https://github.com/ontio/ontology/releases
v0.82 for windows, it throws up an error.
"Forbidden" or "Failed - Forbidden"
This error means you don't have permission to download this file from the server.
To fix, go to the website where the file is hosted. Check if you need to sign in (or provide some other authentication).
The source root does not have config.json file, so when we make docker image, the shell will throw errors.
I checked the histories, it seems the config.json files are removed right now. Would you please update the makefile accordingly?
ont2@ONT2:~/GoPath/src/github.com/ontio/ontology$ ./ontology account list
Index:1 Address:ARC4DTUtvX8u8ZySmSNet2UsonesUym3cS Label: (default)
Index:2 Address:AHHDCGUgCiTZ3D8PbpTPiUj9a83TvbSfUn Label:
ont2@ONT2:~/GoPath/src/github.com/ontio/ontology$ ./ontology asset balance 2
sendRpcRequest error:http post request:{"jsonrpc":"2.0","id":"cli","method":"getbalance","params":["AHHDCGUgCiTZ3D8PbpTPiUj9a83TvbSfUn"]} error:Post http://localhost:20336: dial tcp 127.0.0.1:20336: connect: connection refused
ont2@ONT2:~/GoPath/src/github.com/ontio/ontology$ ./ontology asset balance 1
sendRpcRequest error:http post request:{"jsonrpc":"2.0","id":"cli","method":"getbalance","params":["ARC4DTUtvX8u8ZySmSNet2UsonesUym3cS"]} error:Post http://localhost:20336: dial tcp 127.0.0.1:20336: connect: connection refused
thanks!
Parallel ledger writing optimization
Please answer these questions before submitting your issue. Thanks!
ontology --version
)?v1.0.1-15-gaeda
yes
Linux
Mainnet sync node deployment.
Log:
2018/07/30 06:52:08.987652 [INFO ] GID 60, peer 10.0.1.4:45456 connect with 139.219.140.79:20338 with tcp
2018/07/30 06:52:09.017270 [INFO ] GID 195, Node info:
2018/07/30 06:52:09.017333 [INFO ] GID 195, syncState = 4
2018/07/30 06:52:09.017373 [INFO ] GID 195, consState = 0
2018/07/30 06:52:09.017411 [INFO ] GID 195, id = 10563388247731019327
2018/07/30 06:52:09.017460 [INFO ] GID 195, addr = 40.113.239.95:20338
2018/07/30 06:52:09.017518 [INFO ] GID 195, cap = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2018/07/30 06:52:09.017565 [INFO ] GID 195, version = 0
2018/07/30 06:52:09.017611 [INFO ] GID 195, services = 2
2018/07/30 06:52:09.017666 [INFO ] GID 195, syncPort = 20338
2018/07/30 06:52:09.017754 [INFO ] GID 195, consPort = 0
2018/07/30 06:52:09.017797 [INFO ] GID 195, relay = true
2018/07/30 06:52:09.017863 [INFO ] GID 195, height = 115583
2018/07/30 06:52:09.052584 [INFO ] GID 158, Node info:
2018/07/30 06:52:09.052636 [INFO ] GID 158, syncState = 4
2018/07/30 06:52:09.052717 [INFO ] GID 158, consState = 0
2018/07/30 06:52:09.052762 [INFO ] GID 158, id = 3096506620776001001
2018/07/30 06:52:09.052817 [INFO ] GID 158, addr = 104.45.19.210:20338
2018/07/30 06:52:09.052881 [INFO ] GID 158, cap = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2018/07/30 06:52:09.052931 [INFO ] GID 158, version = 0
2018/07/30 06:52:09.052982 [INFO ] GID 158, services = 2
2018/07/30 06:52:09.053023 [INFO ] GID 158, syncPort = 20338
2018/07/30 06:52:09.053127 [INFO ] GID 158, consPort = 0
2018/07/30 06:52:09.053179 [INFO ] GID 158, relay = true
2018/07/30 06:52:09.053221 [INFO ] GID 158, height = 115583
2018/07/30 06:52:09.077798 [INFO ] GID 134, peer 10.0.1.4:60646 connect with 52.198.155.118:20338 with tcp
2018/07/30 06:52:09.078810 [INFO ] GID 138, peer 10.0.1.4:34548 connect with 52.197.238.245:20338 with tcp
2018/07/30 06:52:09.081132 [INFO ] GID 136, peer 10.0.1.4:46728 connect with 54.250.241.22:20338 with tcp
2018/07/30 06:52:09.086911 [INFO ] GID 140, peer 10.0.1.4:43918 connect with 18.182.239.242:20338 with tcp
2018/07/30 06:52:09.096549 [INFO ] GID 183, OnAddNode:8015415082370809860
2018/07/30 06:52:09.117447 [INFO ] GID 139, peer 10.0.1.4:52848 connect with 52.231.153.200:20338 with tcp
2018/07/30 06:52:09.147332 [INFO ] GID 45, peer 10.0.1.4:40826 connect with 139.219.129.26:20338 with tcp
2018/07/30 06:52:09.227654 [INFO ] GID 48, peer 10.0.1.4:59288 connect with 118.178.129.13:20338 with tcp
2018/07/30 06:52:09.238090 [INFO ] GID 187, OnAddNode:11184694042835741623
2018/07/30 06:52:09.257785 [ERROR] GID 199, read connection error EOF
2018/07/30 06:52:09.260169 [ERROR] GID 200, read connection error EOF
2018/07/30 06:52:09.264759 [ERROR] GID 201, read connection error read tcp 10.0.1.4:46728->54.250.241.22:20338: readnection reset by peer
2018/07/30 06:52:09.270373 [INFO ] GID 210, OnAddNode:7903060087312080697
2018/07/30 06:52:09.274500 [INFO ] GID 226, Node info:
2018/07/30 06:52:09.274570 [INFO ] GID 226, syncState = 4
2018/07/30 06:52:09.274607 [INFO ] GID 226, consState = 0
2018/07/30 06:52:09.274647 [INFO ] GID 226, id = 8015415082370809860
2018/07/30 06:52:09.274720 [INFO ] GID 226, addr = 13.78.34.73:20338
2018/07/30 06:52:09.274777 [INFO ] GID 226, cap = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2018/07/30 06:52:09.274815 [INFO ] GID 226, version = 0
2018/07/30 06:52:09.274854 [INFO ] GID 226, services = 2
2018/07/30 06:52:09.274882 [INFO ] GID 226, syncPort = 20338
2018/07/30 06:52:09.274907 [INFO ] GID 226, consPort = 0
2018/07/30 06:52:09.274939 [INFO ] GID 226, relay = true
2018/07/30 06:52:09.274975 [INFO ] GID 226, height = 115583
2018/07/30 06:52:09.337567 [INFO ] GID 190, OnAddNode:17658260025267060154
2018/07/30 06:52:09.397652 [ERROR] GID 203, read connection error EOF
connection not error
2018/07/30 06:52:09.257785 [ERROR] GID 199, read connection error EOF
2018/07/30 06:52:09.260169 [ERROR] GID 200, read connection error EOF
2018/07/30 06:52:09.264759 [ERROR] GID 201, read connection error read tcp 10.0.1.4:46728->54.250.241.22:20338: readnection reset by peer
2018/07/30 06:52:09.397652 [ERROR] GID 203, read connection error EOF
Add any other context about the problem here.
ontology/common/config/config.go
Line 422 in fcee257
ontology/common/config/config.go
Line 494 in fcee257
./ontology
2018/06/10 15:14:42.138339 [INFO ] GID 1, Config init success
Password:
2018/06/10 15:14:45.336020 [INFO ] GID 1, Wallet init success
2018/06/10 15:14:45.351515 [INFO ] GID 1, InitCurrentBlock currentBlockHash d3e758ab7b71216595d46dfa2771290b8ba172588639c47ef1b549eda882f846 currentBlockHeight 0
2018/06/10 15:14:45.352043 [INFO ] GID 1, Ledger init success
2018/06/10 15:14:45.353030 [INFO ] GID 1, TxPool init success
2018/06/10 15:14:45.353072 [INFO ] GID 93, txpool-verify actor: started and be ready to receive validator's msg
2018/06/10 15:14:45.353074 [INFO ] GID 94, txpool actor started and be ready to receive txPool msg
2018/06/10 15:14:45.353122 [INFO ] GID 96, stateless-validator: started and be ready to receive txn
2018/06/10 15:14:45.353131 [INFO ] GID 97, stateful-validator: started and be ready to receive txn
2018/06/10 15:14:45.353145 [INFO ] GID 95, txpool-tx actor started and be ready to receive tx msg
2018/06/10 15:14:45.353160 [INFO ] GID 1, Init peer ID to 0xe2260fd449030212
2018/06/10 15:14:45.353345 [INFO ] GID 115, p2p actor started
2018/06/10 15:14:45.353571 [INFO ] GID 1, Start listen on sync port 20338
2018/06/10 15:14:45.353622 [INFO ] GID 1, Dual port mode not supported,keep single link
2018/06/10 15:14:45.365848 [INFO ] GID 1, MessageRouter start to parse p2p message...
2018/06/10 15:14:45.365952 [INFO ] GID 1, Wait for minimum connection...
2018/06/10 15:14:48.367266 [INFO ] GID 1, Wait for minimum connection...
2018/06/10 15:14:51.368625 [INFO ] GID 1, Wait for minimum connection...
2018/06/10 15:14:51.369080 [ERROR] GID 125, connect failed: dial tcp 127.0.0.1:20318: connect: connection refused
2018/06/10 15:14:54.369284 [INFO ] GID 1, Wait for minimum connection...
2018/06/10 15:14:57.370024 [INFO ] GID 1, Wait for minimum connection...
Please answer these questions before submitting your issue. Thanks!
ontology --version
)?ontology version v1.0.1, master branch, latest SHA f3231af
The issues is caused by c705b70
Linux.
After pulling the latest master and make all, we run
./ontology --networkid 1
If possible, provide a recipe for reproducing the error. A complete runnable program is good. Attach the project archive with the issue.
Block synchronized to the latest height
2018/07/16 23:30:15.040015 [INFO ] GID 31426, syncHeader request Height:9024
2018/07/16 23:30:16.071100 [INFO ] GID 31442, OnHeaderReceive Height:9024 - 9523
2018/07/16 23:30:16.071750 [ERROR] GID 31442, VerifyMultiSignature:invalid signature data,Bookkeepers:5,pubkey:7,heigh:9024
2018/07/16 23:30:16.071821 [ERROR] GID 31442, OnHeaderReceive AddHeaders error:verifyHeader error invalid signature data
In c705b70, it changes the verifyHeader function of core/store/ledgerstore/ledger_store.go by adding VerifyMultiSignature function. However, the block 9024 uses an invalid scheme that is not defined in https://github.com/ontio/ontology-crypto/blob/master/signature/scheme.go. Therefore, the code throws error at Line 262 https://github.com/ontio/ontology-crypto/blob/master/signature/signature.go, and the block sync get stuck at the height 9024.
package golang.org/x/crypto/ed25519: unrecognized import path "golang.org/x/crypto/ed25519" (https fetch: Get https://golang.org/x/crypto/ed25519?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/crypto/ripemd160: unrecognized import path "golang.org/x/crypto/ripemd160" (https fetch: Get https://golang.org/x/crypto/ripemd160?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/crypto/sha3: unrecognized import path "golang.org/x/crypto/sha3" (https fetch: Get https://golang.org/x/crypto/sha3?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/crypto/ssh/terminal: unrecognized import path "golang.org/x/crypto/ssh/terminal" (https fetch: Get https://golang.org/x/crypto/ssh/terminal?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
tracking issue of pr #57
Threshold signatures with MPC, secure private key recovery mechanism (using MPC)
There is no networkid for a privatenet and setting it to anything higher than 3 defaults back to mainnet.
It's probably not a target platform, but worth mentioning: Ontology currently cannot be built on Raspberry Pi (and probably any other non-amd64 architecture):
ivoras@rpi ~/g/s/g/o/ontology> go version
go version go1.10.3 linux/arm
ivoras@rpi ~/g/s/g/o/ontology> make all
go build -ldflags "-X github.com/ontio/ontology/common/config.Version=v1.0.1-3-g8b6fa" -o ontology main.go
# github.com/ontio/ontology/vendor/github.com/ontio/ontology-crypto/sm2
vendor/github.com/ontio/ontology-crypto/sm2/curves.go:39:14: undefined: initP256
vendor/github.com/ontio/ontology-crypto/sm2/curves.go:40:9: undefined: p256
Makefile:20: recipe for target 'ontology' failed
make: *** [ontology] Error 2
For what its worth, it seems like the problem is with P256 curves, which are also implemented in https://golang.org/pkg/crypto/elliptic/ , which is cross-platform.
Please answer these questions before submitting your issue. Thanks!
ontology --version
)?v1.0.1-15-gaeda
yes
Linux
I created a wallet on iOS "ONTO" and deposited ont.
I checked ont balance on mainnet and the number of ont always 0.
So I want to know if I can check ont balance on mainnet?
ont2@ONT2:~/GoPath/src/github.com/ontio/ontology_v1.0.1-15-gaeda$ ./ontology asset balance AKSKgme9wEyUvkxJ7yePtVg6E8s6zxG7dG
BalanceOf:AKSKgme9wEyUvkxJ7yePtVg6E8s6zxG7dG
ONT:0
ONG:0
ont balance is correct.
ont balance is zero.
Add any other context about the problem here.
2018/05/20 20:00:16.773104 [INFO ] GID 1, Wait for minimum connection...
2018/05/20 20:00:19.622144 [ERROR] GID 1021, connect failed: dial tcp 127.0.0.1:20318: connect: connection refused
[root@VM_143_245_centos multi-node1]# ./ontology asset balance 1
BalanceOf:TA86DZm9hVoqYmedZMVamWLvSCXQF942S6
ONT:0
ONG:0
ONGApprove:0
ontology --version
)?ontology-linux-amd64 of ontology version v1.0.1
Centos7 minimal
服务器是腾讯云(成都区域)
直接连接主网
./ontology --networkid 1
能正常同步区块
不正常的同步区块
2018/08/07 19:54:45.708463 [ERROR] GID 105077, read connection error EOF
2018/08/07 19:54:48.461635 [INFO ] GID 117489, checkTimeout sync headers:5001 timeout after:2 s Times:68
2018/08/07 19:54:49.467973 [INFO ] GID 311, CurrentBlockHeight = 1422
2018/08/07 19:54:49.782855 [INFO ] GID 115338, connect ip address: 54.95.68.0:20338
2018/08/07 19:54:49.782920 [INFO ] GID 115338, connect ip address: 54.66.154.140:20338
2018/08/07 19:54:49.784685 [INFO ] GID 115338, connect ip address: 47.52.196.117:30164
2018/08/07 19:54:49.784722 [INFO ] GID 115338, connect ip address: 54.169.109.231:20338
2018/08/07 19:54:49.784750 [INFO ] GID 115338, connect ip address: 107.155.56.28:20338
2018/08/07 19:54:49.784781 [INFO ] GID 115338, connect ip address: 13.125.110.186:20338
2018/08/07 19:54:49.784809 [INFO ] GID 115338, connect ip address: 47.91.248.37:30164
2018/08/07 19:54:49.784839 [INFO ] GID 115338, connect ip address: 13.114.212.150:20338
2018/08/07 19:54:49.787651 [INFO ] GID 106932, Node info:
2018/08/07 19:54:49.787690 [INFO ] GID 106932, syncState = 4
2018/08/07 19:54:49.787718 [INFO ] GID 106932, consState = 0
2018/08/07 19:54:49.787743 [INFO ] GID 106932, id = 1480515156475380131
2018/08/07 19:54:49.787768 [INFO ] GID 106932, addr = 13.114.212.150:43604
2018/08/07 19:54:49.787792 [INFO ] GID 106932, cap = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2018/08/07 19:54:49.787811 [INFO ] GID 106932, version = 0
2018/08/07 19:54:49.787827 [INFO ] GID 106932, services = 2
2018/08/07 19:54:49.787842 [INFO ] GID 106932, syncPort = 20338
2018/08/07 19:54:49.787856 [INFO ] GID 106932, consPort = 0
2018/08/07 19:54:49.787871 [INFO ] GID 106932, relay = true
2018/08/07 19:54:49.787885 [INFO ] GID 106932, height = 144318
2018/08/07 19:54:51.454748 [INFO ] GID 35, remote sync node connect with 45.193.17.204:38668 10.139.157.225:20338
2018/08/07 19:54:51.461263 [INFO ] GID 118609, checkTimeout sync headers:5001 timeout after:2 s Times:69
2018/08/07 19:54:54.461459 [INFO ] GID 120801, checkTimeout sync headers:5001 timeout after:2 s Times:70
2018/08/07 19:54:54.793969 [ERROR] GID 6791, error sending messge to peer node write tcp 10.139.157.225:20338->61.135.172.70:48159: i/o timeout
2018/08/07 19:54:54.794388 [ERROR] GID 5855, read connection error read tcp 10.139.157.225:20338->61.135.172.70:48159: use of closed network connection
2018/08/07 19:54:54.794623 [ERROR] GID 107027, sync link invalid
2018/08/07 19:54:54.795942 [ERROR] GID 107681, sync link invalid
2018/08/07 19:54:54.796475 [ERROR] GID 108159, sync link invalid
2018/08/07 19:54:54.796689 [ERROR] GID 108190, sync link invalid
2018/08/07 19:54:54.800590 [ERROR] GID 109861, sync link invalid
2018/08/07 19:54:55.467870 [INFO ] GID 311, CurrentBlockHeight = 1422
2018/08/07 19:54:55.784677 [ERROR] GID 118181, connect failed: dial tcp 54.95.68.0:20338: i/o timeout
2018/08/07 19:54:55.784790 [ERROR] GID 118182, connect failed: dial tcp 54.66.154.140:20338: i/o timeout
2018/08/07 19:54:55.785044 [ERROR] GID 118256, connect failed: dial tcp 13.114.212.150:20338: i/o timeout
2018/08/07 19:54:55.786166 [ERROR] GID 118251, connect failed: dial tcp 47.52.196.117:30164: i/o timeout
2018/08/07 19:54:55.786257 [ERROR] GID 118252, connect failed: dial tcp 54.169.109.231:20338: i/o timeout
2018/08/07 19:54:55.786317 [ERROR] GID 118253, connect failed: dial tcp 107.155.56.28:20338: i/o timeout
2018/08/07 19:54:55.786383 [ERROR] GID 118254, connect failed: dial tcp 13.125.110.186:20338: i/o timeout
2018/08/07 19:54:55.786456 [ERROR] GID 118255, connect failed: dial tcp 47.91.248.37:30164: i/o timeout
2018/08/07 19:54:57.462007 [INFO ] GID 123259, checkTimeout sync headers:5001 timeout after:2 s Times:71
2018/08/07 19:54:58.110322 [INFO ] GID 35, remote sync node connect with 61.135.172.70:56802 10.139.157.225:20338
2018/08/07 19:54:59.804011 [ERROR] GID 6791, error sending messge to peer node write tcp 10.139.157.225:20338->13.114.212.150:59905: i/o timeout
2018/08/07 19:54:59.804436 [ERROR] GID 74764, read connection error read tcp 10.139.157.225:20338->13.114.212.150:59905: use of closed network connection
2018/08/07 19:54:59.805372 [ERROR] GID 110514, sync link invalid
2018/08/07 19:54:59.805435 [ERROR] GID 110515, sync link invalid
2018/08/07 19:54:59.805898 [ERROR] GID 111490, sync link invalid
2018/08/07 19:54:59.806174 [ERROR] GID 112206, sync link invalid
2018/08/07 19:54:59.806314 [ERROR] GID 112311, sync link invalid
2018/08/07 19:54:59.806562 [ERROR] GID 112468, sync link invalid
2018/08/07 19:54:59.806600 [ERROR] GID 112469, sync link invalid
2018/08/07 19:54:59.806728 [ERROR] GID 123868, P2PServer send to a not ESTABLISH peer 10079957436725313554
2018/08/07 19:54:59.822951 [ERROR] GID 113381, sync link invalid
2018/08/07 19:54:59.827588 [ERROR] GID 114117, sync link invalid
2018/08/07 19:55:00.461276 [INFO ] GID 124292, checkTimeout sync headers:5001 timeout after:2 s Times:72
2018/08/07 19:55:01.467915 [INFO ] GID 311, CurrentBlockHeight = 1422
2018/08/07 19:55:03.461258 [INFO ] GID 126605, checkTimeout sync headers:5001 timeout after:2 s Times:73
2018/08/07 19:55:04.831229 [ERROR] GID 6791, error sending messge to peer node write tcp 10.139.157.225:20338->13.114.245.142:62041: i/o timeout
2018/08/07 19:55:04.831561 [ERROR] GID 78601, read connection error read tcp 10.139.157.225:20338->13.114.245.142:62041: use of closed network connection
2018/08/07 19:55:04.832235 [ERROR] GID 114740, sync link invalid
2018/08/07 19:55:04.832282 [ERROR] GID 114757, sync link invalid
2018/08/07 19:55:04.832384 [ERROR] GID 115018, sync link invalid
2018/08/07 19:55:04.832731 [ERROR] GID 115339, sync link invalid
2018/08/07 19:55:04.832825 [ERROR] GID 115380, sync link invalid
2018/08/07 19:55:04.833024 [ERROR] GID 115582, sync link invalid
2018/08/07 19:55:04.833146 [ERROR] GID 127017, P2PServer send to a not ESTABLISH peer 7903060087312080697
2018/08/07 19:55:04.833204 [ERROR] GID 115627, sync link invalid
2018/08/07 19:55:04.833688 [ERROR] GID 116406, sync link invalid
2018/08/07 19:55:04.833736 [ERROR] GID 116505, sync link invalid
2018/08/07 19:55:04.836592 [ERROR] GID 117512, sync link invalid
2018/08/07 19:55:04.837710 [INFO ] GID 40, try reconnect 18.182.239.242:20338
2018/08/07 19:55:04.837775 [INFO ] GID 40, try reconnect 45.193.17.204:20338
2018/08/07 19:55:04.837833 [INFO ] GID 40, Try to reconnect peer, peer addr is 45.193.17.204:20338
2018/08/07 19:55:04.839491 [ERROR] GID 118080, sync link invalid
2018/08/07 19:55:06.131998 [INFO ] GID 40, Back off time`s up, start connect node
2018/08/07 19:55:06.461438 [INFO ] GID 128313, checkTimeout sync headers:5001 timeout after:2 s Times:74
2018/08/07 19:55:07.468302 [INFO ] GID 311, CurrentBlockHeight = 1422
2018/08/07 19:55:07.940109 [INFO ] GID 35, remote sync node connect with 13.114.245.142:61097 10.139.157.225:20338
2018/08/07 19:55:09.461264 [INFO ] GID 130572, checkTimeout sync headers:5001 timeout after:2 s Times:75
Use java-sdk,I want parse transaction from block,get sender address、recipient address、amount、transaction hash.But not found!help me please!thanks.
Code:
Block block = ontSdk.getConnect().getBlock(9);
Transaction[] transactions=block.transactions;
System.out.println("block:"+block.json());
System.out.println("tx:"+transactions[0].json().toString());
Result:
{Nonce=1298299449, Payer=ASm7Uf6zae6JZ8WqYz1W9PSyvedAiznt5n, TxType=209, Version=0, Sigs=[Ljava.lang.Object;@43814d18, Attributes=[Ljava.lang.Object;@5c5a1b69, GasPrice=1, Payload={Code=00c66b147884833c8511f744b68fb4d69afcd037f042880d6a7cc814db2da7034bfd60fd1872bc169d8796d9f656a2ac6a7cc8566a7cc86c51c1087472616e736665721400000000000000000000000000000000000000010068164f6e746f6c6f67792e4e61746976652e496e766f6b65}, Hash=16eea36cf73247f8e680995e984339ab68afe3b372669f89be7068b603ba3293, GasLimit=30000}
怎么提交这么不频繁,本体加油啊
New P2P network model
The method getblocktxsbyheight which is available via REST or Websocket is not available via RPC.
See below response:
{
"error": {
"code": -32601,
"data": "The called method was not found on the server",
"message": "Method not found"
},
"id": 1,
"result": null
}
I have five nodes.Four of them have no problem,but only one has the problem "Incorrectly book keepers key" when I started all nodes.
And I found the public key is different from the other four nodes.
`root@bc154:/opt/go/src/github.com/ontio/ontology# ./ontology account add -d
Use default setting '-t ecdsa -b 256 -s SHA256withECDSA'
signature algorithm: ecdsa
curve: P-256
signature scheme: SHA256withECDSA
Password:
Re-enter Password:
Index: 1
Label:
Address: TA6RNsUTjHAbuEU6pM5eqa54Bcy2qJuasb
Public key: 020b70fef6abb397c4ef0f1114d24c623c4ea556e7e65dcd5aec8dae92057fa568
Signature scheme: SHA256withECDSA
Create account successfully.`
The public keys of the other four nodes is like '120202ce6a4122482372806ad0359e9aba5da0560053c97dd5543efc83325ef1098321'
ontology version v1.0.1
centos7
from boa.interop.Neo.Runtime import Log, Notify
from boa.interop.Neo.Storage import Get, Put, GetContext
def Main():
context = GetContext()
# This is the storage key we use in this example
item_key = 'test-storage-key'
# Try to get a value for this key from storage
item_value = Get(context, item_key)
msg = ["Value read from storage:", item_value]
Notify(msg)
if len(item_value) == 0:
Notify("Storage key not yet set. Setting to 1")
item_value = 1
else:
Notify("Storage key already set. Incrementing by 1")
item_value += 1
# Store the new value
Put(context, item_key, item_value)
msg = ["New value written into storage:", item_value]
Notify(msg)
return item_value
得到的字节码,在我的centos7上部署到polaris上,合约信息如下:
[root@centos ontio]# ontology contract deploy --code test.avm --name 'demo' --version '1.0' --author 'zou' --email '[email protected]' --desc 'demo' --account 1 --gaslimit 100000000 --needstore true
Password:
Deploy contract:
Contract Address:ec9a9f99b894c333667b008b9df35faaf4536143
TxHash:3ab9a35e2f5fd33ae0c63997b15489534c9cded3b10cba84d6347624c6050a17
Tip:
Using './ontology info status 3ab9a35e2f5fd33ae0c63997b15489534c9cded3b10cba84d6347624c6050a17' to query transaction status
最终显示合约执行失败
####What did you expect to see?
返回某个整数 return some integer
####What did you see instead?
[root@centos ontio]# ontology contract invoke --address ec9a9f99b894c333667b008b9df35faaf4536143 --gaslimit 200000000 --prepare --return int
Invoke:436153f4aa5ff39d8b007b6633c394b8999f9aec Params:null
PrepareInvokeNeoVMSmartContact error:error code:47001 desc:SMARTCODE EXEC ERROR
Log:
2018/08/09 15:47:28.915857 [INFO ] GID 644377, PreExec:
%!(EXTRA errors.ontError=[NeoVmService] service system call error!: [SystemCall] service not support: Neo.Storage.GetContext)
python版的合约调用会报错,C#是没问题的。smartx部署-运行也是会报错的,查询交易显示Failed
请问该如何解决,非常感谢
Found an error in docs/specifications/ontrpcapi.md, the api name and instructions don't match, as follows:
Get a list of unconfirmed transactions in memory.
Request:
{
"jsonrpc": "2.0",
"method": "getgenerateblocktime",
"params": [],
"id": 1
}
Reponse:
{
"desc":"SUCCESS",
"error":0,
"jsonrpc": "2.0",
"id": 1,
"result": [
"b4534f6d4c17cda008a76a1968b7fa6256cd90ca448739eae8e828698ccc44e7"
]
}
These are the undetermined transactions received by the node, that is, those with zero confirmed transactions.
hi,
I noticed you've directly copied a bunch of go-interpreter/wagon inside ontology
:
I was wondering why you did that instead of just importing wagon/wasm
(or vendoring it) ?
was there some shortcoming from wagon/wasm
that you had to fix?
basically: what should I do on the wagon/wasm
side to make your life easier?
Hi,
I've tried to launch the project but the default seed address of the network seems not to be working.
When will the testnet be available(or do I config the server in the wrong way?)
thanks!
where can get ONT(mainnet)
May i use the neo local js libs to process ontology transaction?
docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "process_linux.go:398: container init caused "mkdir /go/src/github.com: permission denied"": unknown.
make: *** [docker/build/bin/ontology] Error 126
$ ./ontology --testmode
2018/06/10 15:05:09.612818 [INFO ] GID 1, Config init success
Password:
2018/06/10 15:05:11.136472 [INFO ] GID 1, Wallet init success
2018/06/10 15:05:11.152077 [INFO ] GID 1, InitCurrentBlock currentBlockHash d3e758ab7b71216595d46dfa2771290b8ba172588639c47ef1b549eda882f846 currentBlockHeight 0
2018/06/10 15:05:11.152425 [ERROR] GID 1, Init ledger error:InitLedgerStoreWithGenesisBlock error GenesisBlock arenot init correctly
发布合约代码:
OntSdk ontSdk = Base.getOntSdk();
String code = "58c56b6a00527ac46a51527ac46a00c30548656c6c6f9c6416006a51c300c36a52527ac46a52c3650b006c756661006c756655c56b6a00527ac46a00c3680f4e656f2e52756e74696d652e4c6f6761516c7566";
Account account = new Account(Helper.hexToBytes("7eeb1f37ce6802f0d459905306efcc0b0f520537110d7a08918659c9da12cbce"), SignatureScheme.SHA256WITHECDSA);
Transaction tx = ontSdk.vm().makeDeployCodeTransaction(
code,
true,
"HelloWorld",
"v0.0.1",
"Sean.Xiao",
"[email protected]",
"My first smart contract",
account.getAddressU160().toBase58(),
30000L,
0L);
ontSdk.signTx(tx, new Account[][]{{account}});
String txHex = Helper.toHexString(tx.toArray());
System.out.println(txHex);
Object result = ontSdk.getConnect().sendRawTransaction(txHex);
System.out.println(result);
System.out.println("txhash:" + tx.hash().toString());
String txhash = tx.hash().toHexString();
System.out.println("txhash:" + txhash);
返回结果:
00d0980fe805000000000000000030750000000000007958b9a3a0521cda7de973fb12b4431cc48d9bb65358c56b6a00527ac46a51527ac46a00c30548656c6c6f9c6416006a51c300c36a52527ac46a52c3650b006c756661006c756655c56b6a00527ac46a00c3680f4e656f2e52756e74696d652e4c6f6761516c7566010a48656c6c6f576f726c640676302e302e31095365616e2e5869616f0e6a787a737873704071712e636f6d174d7920666972737420736d61727420636f6e74726163740001424101cfeb3eef5414125a6d5985cb7873da223aea29d314d74451186fde08a9aa89efd93df1eb7b47e930f467089e51be56e990fd4e83a66bacfd97ec880b530b88b2232102aecca09cc3732b306990eb56cd0d5a7bb4d6bd81436311b10c5de756837fac4eac
POST url=http://localhost:20334/api/v1/transaction,{},{"Action":"sendrawtransaction","Version":"v1.0.0","Data":"00d0980fe805000000000000000030750000000000007958b9a3a0521cda7de973fb12b4431cc48d9bb65358c56b6a00527ac46a51527ac46a00c30548656c6c6f9c6416006a51c300c36a52527ac46a52c3650b006c756661006c756655c56b6a00527ac46a00c3680f4e656f2e52756e74696d652e4c6f6761516c7566010a48656c6c6f576f726c640676302e302e31095365616e2e5869616f0e6a787a737873704071712e636f6d174d7920666972737420736d61727420636f6e74726163740001424101cfeb3eef5414125a6d5985cb7873da223aea29d314d74451186fde08a9aa89efd93df1eb7b47e930f467089e51be56e990fd4e83a66bacfd97ec880b530b88b2232102aecca09cc3732b306990eb56cd0d5a7bb4d6bd81436311b10c5de756837fac4eac"}
true
txhash:510df28666b2912662965e57b11a9dec50a4ec265e08741b3301125249d92147
txhash:510df28666b2912662965e57b11a9dec50a4ec265e08741b3301125249d92147
命令行查询:
[root@736c4412a328 ontology]# ./ontology info tx 510df28666b2912662965e57b11a9dec50a4ec265e08741b3301125249d92147
error code:44001 desc:UNKNOWN TRANSACTION
is secp256r1 still working here?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.