seanjameshan / Coin Cli
Licence: apache-2.0
ðļA minimal cryptocurrency CLI implementation in TypeScript & Immutable.js
Stars: â 170
Programming Languages
typescript
32286 projects
Coin CLI
A minimal cryptocurrency CLI implementation in TypeScript & Immutable.js
Demo
Connect
Mining
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. |
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].