Skip to content

AxLabs/neo3-privatenet-docker

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

License GitHub stars

neo3-privatenet-docker

🔥🔥🔥 Run Neo N3 blockchain nodes for development in record time! 🔥🔥🔥

You're 3 commands away to set up a Neo N3 blockchain private network.

🎉 Highlights

  • 💚 This repository relies on git sub-modules pointing to the official neo-node and neo-modules. Then, you can adjust the reference if you want to rely on the latest or an specific commit!
  • 🚀 The neo-cli image is built from the official Dockerfile from neo-node.
  • 💯 Includes all available plugins from neo-modules
  • 💥 It just fucking works.

Ah, we love GitHub stars to keep our motivation up to the roof! 😉

🚨 Dependencies

🏃 How to Run

git clone --recurse-submodules https://github.com/AxLabs/neo3-privatenet-docker.git
cd neo3-privatenet-docker
docker-compose up

Then, check the running privatenet:

docker ps

If you want to stop everything and start from scratch:

docker-compose down -v

After you change something in the config files and want to rebuild everything, without docker cache, run the following:

docker-compose build --no-cache

Test a bit through JSON-RPC

  • Get the latest block index of neo-client1:
curl http://127.0.0.1:10332 -d '{"jsonrpc":"2.0","method":"getblockcount","params":[],"id":1}'
  • Open the wallet of the neo-consesus through JSON-RPC (only for test purposes!):
curl http://127.0.0.1:40332 -d '{"jsonrpc":"2.0","method":"openwallet","params":["wallet.json","neo"],"id":1}'
  • List the addresses in neo-consensus wallet:
curl http://127.0.0.1:40332 -d '{"jsonrpc":"2.0","method":"listaddress","params":[],"id":1}'
  • Get all NEP-17 balance of neo-consensus' address NKvR5WeczCQMcVWQD9aaMqegfEoCBXGWpW, specifically:
curl http://127.0.0.1:40332 -d '{"jsonrpc":"2.0","method":"getnep17balances","params":["NKvR5WeczCQMcVWQD9aaMqegfEoCBXGWpW"],"id":1}'
  • Send 100 NEO from neo-consensus' address NKvR5WeczCQMcVWQD9aaMqegfEoCBXGWpW to neo-client1's address NdihqSLYTf1B1WYuzhM52MNqvCNPJKLZaz:
curl http://127.0.0.1:40332 -d '{"jsonrpc":"2.0","method":"sendfrom","params":["0xef4073a0f2b305a38ec4050e4d3d28bc40ea63f5","NKvR5WeczCQMcVWQD9aaMqegfEoCBXGWpW", "NdihqSLYTf1B1WYuzhM52MNqvCNPJKLZaz",100],"id":1}'
  • Open the wallet of the neo-client1 through JSON-RPC (only for test purposes!):
curl http://127.0.0.1:10332 -d '{"jsonrpc":"2.0","method":"openwallet","params":["wallet.json","neo"],"id":1}'
  • Get all NEP-17 balance of neo-client1' address NdihqSLYTf1B1WYuzhM52MNqvCNPJKLZaz (wait 15 seconds before executing the command, due to the block generation interval):
curl http://127.0.0.1:10332 -d '{"jsonrpc":"2.0","method":"getnep17balances","params":["NdihqSLYTf1B1WYuzhM52MNqvCNPJKLZaz"],"id":1}'

💡 Info

The docker-compose file has 3 nodes, each with an account. The consensus node uses one public key for two accounts. One is a multisig account and the other a normal account. The multisig account is required as the validator account. Private keys are encrypted according to NEP-2.

  • Consensus

    • Address: NM7Aky765FG8NhhwtxjXRx7jEL1cnw7PBP
      • ScriptHash: 69ecca587293047be4c59159bf8bc399985c160d
      • Script: 0c21033a4d051b04b7fc0230d2b1aaedfd5a84be279a5361a7358db665ad7857787f1b4156e7b327
      • PubKey: 033a4d051b04b7fc0230d2b1aaedfd5a84be279a5361a7358db665ad7857787f1b
      • PrivKey: 84180ac9d6eb6fba207ea4ef9d2200102d1ebeb4b9c07e2c6a738a42742e27a5
      • NEP-2 encrypted: 6PYM7jHL4GmS8Aw2iEFpuaHTCUKjhT4mwVqdoozGU6sUE25BjV4ePXDdLz
      • WIF: L1eV34wPoj9weqhGijdDLtVQzUpWGHszXXpdU9dPuh2nRFFzFa7E
    • MultiSig Address (from the account above, 1/1): NXXazKH39yNFWWZF5MJ8tEN98VYHwzn7g3
      • Script: 110c21033a4d051b04b7fc0230d2b1aaedfd5a84be279a5361a7358db665ad7857787f1b11419ed0dc3a
      • ScritpHash: 05859de95ccbbd5668e0f055b208273634d4657f
    • JSON-RPC: localhost:40332
  • Client1

    • Address: NV1Q1dTdvzPbThPbSFz7zudTmsmgnCwX6c
      • Script: 0c2102607a38b8010a8f401c25dd01df1b74af1827dd16b821fc07451f2ef7f02da60f4156e7b327
      • ScripthHash: 88c48eaef7e64b646440da567cd85c9060efbf63
      • PubKey: 02607a38b8010a8f401c25dd01df1b74af1827dd16b821fc07451f2ef7f02da60f
      • PrivKey: beae38739915555a75a9281a5928b10ebc265f9c881aa21e963610a6c606a3dc
      • NEP-2 encrypted: 6PYWaAbWpf6oeH1VrqtdAGawYMsTfcN1GJyarhUFVEq1siNcRJwMpoo456
      • WIF: L3cNMQUSrvUrHx1MzacwHiUeCWzqK2MLt5fPvJj9mz6L2rzYZpok
    • JSON-RPC: localhost:10332
  • Client2

    • Address: NhJX9eCbkKtgDrh1S4xMTRaHUGbZ5Be7uU
      • Script: 0c21037279f3a507817251534181116cb38ef30468b25074827db34cbbc6adc88739324156e7b327
      • ScriptHash: b435bf4b8e34b28a73029eb42d0d99a775799eea
      • PubKey: 037279f3a507817251534181116cb38ef30468b25074827db34cbbc6adc8873932
      • PrivKey: 7d82c818dcc23f9312527b36c4959e5976f5df7a3dec7e1bbb24a45d64d131c1
      • NEP-2 encrypted: 6PYNfKunYGT5sMMqmpkQLB3KRrgvdE2vTEhpXsjQBLFh9cTbRkWkTkz9Q1
      • WIF: L1RgqMJEBjdXcuYCMYB6m7viQ9zjkNPjZPAKhhBoXxEsygNXENBb
    • JSON-RPC: localhost:20332
  • Wallet passphrase: neo

  • List of native contract's addresses/hashes:

    • ContractManagement: 0xfffdc93764dbaddd97c48f252a53ea4643faa3fd
    • StdLib: 0xacce6fd80d44e1796aa0c2c625e9e4e0ce39efc0
    • CryptoLib: 0x726cb6e0cd8628a1350a611384688911ab75f51b
    • LedgerContract: 0xda65b600f7124ce6c79950c1772a36403104f2be
    • NeoToken: 0xef4073a0f2b305a38ec4050e4d3d28bc40ea63f5
    • GasToken: 0xd2a4cff31913016155e38e474a2c06d08be276cf
    • PolicyContract: 0xcc5e4edd9f5f8dba8bb65734541df7a1c081c67b
    • RoleManagement: 0x49cf4e5378ffcd4dec034fd98a174c5491e395e2
    • OracleContract: 0xfe924b7cfe89ddd271abaf7210a80a7e11178758
  • Address Info:

🔜 Upcoming Features

  • Pre-fund wallets of neo-client1 and neo-client2 with plenty of NEO and GAS
  • Automatically deploy smart contracts specified in a given local directory

If you would like to see anything else, give us a shout and open an issue.

🙏 Thanks

About

Docker images for running a Neo N3 private network, in record time!

Resources

License

Stars

Watchers

Forks