Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.43 KB

README.md

File metadata and controls

76 lines (58 loc) · 2.43 KB

Hyperion Header

A blockchain project aims to implement the features of a blockchain system, such as adding new blocks through a proof of work process, verifying transactions and ensuring the security of the chain through cryptographic hashes, and safeguarding the information stored in the blocks. Additionally, it also aims to include a wallet feature that utilizes Elliptic Curve Digital Signature Algorithm (ECDSA) to generate private and public keys.

Introducing Hyperion that has a wide range of advanced features including:

✅ Utilizing a proof of work algorithm for adding new blocks.

✅ Nonce generation to make the mining process more difficult and fair.

✅ A visual representation of the blockchain on the server to make the process more transparent.

✅ Create and execute new transactions.

✅ Verifying transactions to ensure security.

✅ Securing the data stored in the blocks through cryptographic hashes.

✅ A built-in wallet system that utilizes Elliptic Curve Digital Signature Algorithm (ECDSA) for generating private and public keys.

✅ The storage of wallet data is made more secure and efficient through the use of BitCask, which is a high-performance storage engine that utilizes a log-structured hash table to quickly store and retrieve key/value data.

✅ A Command Line Interface (CLI) to manage the wallet and run the blockchain network.

Usage Guides

  • Create New Blockchain Wallet
go run main.go --create

Warning: Never disclose the private key. Anyone with your private key can steal your assets.

  • List All Blockchain Wallets
go run main.go --list
  • Get Private Key and Public Key for Transaction
go run main.go --get <WALLET_ADDRESS>
  • Run Blockchain Server
go run main.go --port <PORT_NUMBER>
  • Visualize Blocks in Hyperion
Endpoint : http://localhost:<PORT>
Request Type : GET
  • Make new transaction
Endpoint : http://localhost:<PORT>/new
Request Type : POST

Request Body in JSON Format:
{
"privateKey" : "",
"publicKey" : "",
"sender" : "",
"recipient" : "",
"value" : 1
}
  • Verify Transaction
Endpoint : http://localhost:<PORT>/explore/<TRANSACTION_HASH>
Request Type : GET
  • Check Wallet Balance
Endpoint : http://localhost:<PORT>/wallet/<WALLET_ADDRESS>
Request Type : GET