All Projects â†’ seanjameshan â†’ Coin Cli

seanjameshan / Coin Cli

Licence: apache-2.0
ðŸ’ļA minimal cryptocurrency CLI implementation in TypeScript & Immutable.js

Programming Languages

typescript
32286 projects



Coin CLI

A minimal cryptocurrency CLI implementation in TypeScript & Immutable.js


Demo

Connect

connect

Mining

mining

Payment

payment

🎉 Features

  • 💰 Wallet with public and private key.
  • ðŸ’ģ Make Payments between wallets.
  • 🔑 Transactions are signed with the wallet's private key.
  • 🔗 Blocks with index, hash, data, transactions, and timestamp.
  • ⛏ Proof-of-work implementation.
  • ⛓ In-memory JavaScript array to store the blockchain.
  • ✅ Block & Transaction integrity validation.
  • ðŸ“Ą Decentralized and distributed peer-to-peer communication.
  • âœĻ Minimal implementation in 900 lines of code.

ðŸ“Ķ Installation

To install this application, you'll need Node.js 7+ (which comes with npm) installed on your computer. From your command line:

Source (recommended)

You'll need Git to run the project from source. From your command line:

# Clone this repository
$ git clone https://github.com/seanjameshan/coin-cli

# Go into the repository
$ cd coin-cli

# Install dependencies
$ npm install

# Run the app
$ npm start

ðŸ•đïļ Usage

Command Alias Description Example
open o Open port to accept incoming connections. open 5000
connect c Connect to a new peer with host and connect localhost 5000
blockchain bc See the current state of the blockchain.
peers p Get the list of connected peers.
mine [address] m Mine a new block with rewards going to optional [address]. mine or mine xxx...
transactions tx See unconfirmed transactions that can be mined.
wallet w Create a new wallet with wallet mypassword
key k Get your public key
pay p Make payment to address with and using wallet pay xxx... 10 5 mypassword
balance [address] b Balance of optional address balance or balance xxx...
help [command...] Provides help for a given command help balance or help
exit Exits application.

Buy Me A Coffee


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].