JeChain is a proof-of-work blockchain created using Javascript, originally used in this series on dev.to. If you are here for that, consider checking out this repo.
To know how this code work properly, you can check out the tutorial series on dev.to:
- Part 1: Creating a blockchain in 60 lines of Javascript
- Part 2: Creating a cryptocurrency - Creating transactions, mining rewards, mint and gas fee
- Part 3: Build a p2p network and release your cryptocurrency
- Good learning material.
- Simple, easy to configure.
First, be sure to have Nodejs installed on your machine.
Next, install all the needed packages:
npm install
If you haven't had your keys, goto ./utils
and type node keygen
, it will generate a key pair for you.
Then, if you want to start a node, open the terminal, configure it first:
# PORT
PORT=Insert your port here
# Peers to connect when startup
PEERS=Address 1, address 2, address 3
# Set your address
MY_ADDRESS=ws://your.ip.and:port
# Set your private key
PRIVATE_KEY=your key
# Start the node
node jecoin
The equivalent of this on Windows is set PORT=Insert your port here
You can mine a block like this:
mine();
You can broadcast a transaction like this:
sendTransaction(yourTransaction);
You can request for a chain and chain's info like this:
requestChain("An address you trust");
You can manually connect to a node like this:
connect("address");
Check jechain.js
, have a look at the genesis block, change the receiver address to your public address (because you should be the one who holds all the coins initally). Change the amount of coins if you want, it is set to 100000000
by default.
You shouldn't care about the minting address though, it can be anything you want.
Just forward port, drop your public IP + the port you forwarded in and you are set!
Just host a bootstrap node and a node that mines continously, and then ask people to connect to the bootstrap node, and you have technically had a cryptocurrency!
No, it's more of a proof-of-concept, not a production-ready chain, so no.
I'm still improving it, please wait until it hits 1.0!
- Improved security and performance.
- Smart contracts.
You can use the code in this project to build a chain on your own, but please mention me in the credit, thanks.
If you love the project or my tutorial series on dev.to, you can support me by:
- Leaving a star in this repo.
- Buying me a cup of latte through sending me some cryptos to:
- My Bitcoin address:
bc1qk329eh7ggwrx34qnkzkgsm50jjv3x7haydfzk6
. - My Ethereum/BSC/Aurora address:
0x029B93211e7793759534452BDB1A74b58De22C9c
. - My Near address:
freakdev095.near
- My Solana address:
3tpbc8EXnUVqU3nkTSF3wm7NQsmJ2AW7syJGArFdJ9Yd
.
- My Bitcoin address:
Thanks a lot for your help, I really appreciate it!
Copyrights (c) 2021 Nguyen Phu Minh.
This project is licensed under the MIT License.