All Projects → halilozercan → Halocoin

halilozercan / Halocoin

Licence: apache-2.0
Experimental cryptocurrency (blockchain) written in python.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Halocoin

Crypto Supplies
Cryptocurrency circulating, maximum and total supplies
Stars: ✭ 26 (-40.91%)
Mutual labels:  blockchain, cryptocurrency, coin
Proof Of Stake Cryptocurrency Generator
🍀 Create your own Proof of Stake cryptocurrency with its own blockchain based on NXT
Stars: ✭ 178 (+304.55%)
Mutual labels:  blockchain, cryptocurrency, coin
Altcoin Cryptocurrency Generator
AltCoin CryptoCurrency Generator
Stars: ✭ 55 (+25%)
Mutual labels:  blockchain, cryptocurrency, coin
Cointop
A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀
Stars: ✭ 2,912 (+6518.18%)
Mutual labels:  blockchain, cryptocurrency, coin
Etherwalletkit
Ethereum Wallet Toolkit for iOS - You can implement an Ethereum wallet without a server and blockchain knowledge.
Stars: ✭ 96 (+118.18%)
Mutual labels:  blockchain, cryptocurrency, coin
Ico Check
Background checks and due diligence for crypto projects
Stars: ✭ 368 (+736.36%)
Mutual labels:  blockchain, cryptocurrency, coin
Etgate
Ethereum-Tendermint token sending gateway
Stars: ✭ 23 (-47.73%)
Mutual labels:  blockchain, cryptocurrency
Aeternity
æternity: solving scalability problems by making sense of state-channels
Stars: ✭ 923 (+1997.73%)
Mutual labels:  blockchain, cryptocurrency
Bitcoinml
Bitcoin data-structures library for OCaml
Stars: ✭ 38 (-13.64%)
Mutual labels:  blockchain, cryptocurrency
Odyn
A prototype anonymous proof-of-work blockchain
Stars: ✭ 13 (-70.45%)
Mutual labels:  blockchain, cryptocurrency
Blockchain Reading List
Blockchain Manchester Meetups, Talks and Reading List
Stars: ✭ 17 (-61.36%)
Mutual labels:  blockchain, cryptocurrency
Cosmos
Internet of Blockchains ⚛
Stars: ✭ 938 (+2031.82%)
Mutual labels:  blockchain, cryptocurrency
Vue Coin Hive
Start mining coins in your Vue projects in 1 second.
Stars: ✭ 14 (-68.18%)
Mutual labels:  cryptocurrency, coin
Hth Legacy Old Chain
Old Binaries and source code for HTH. Deprecated.
Stars: ✭ 22 (-50%)
Mutual labels:  cryptocurrency, coin
Snax
Decentralized Social Media Overlay
Stars: ✭ 18 (-59.09%)
Mutual labels:  blockchain, cryptocurrency
Eclair
A scala implementation of the Lightning Network.
Stars: ✭ 892 (+1927.27%)
Mutual labels:  blockchain, cryptocurrency
Naivecoin
A cryptocurrency implementation in less than 1500 lines of code
Stars: ✭ 868 (+1872.73%)
Mutual labels:  blockchain, cryptocurrency
Muecore Discontinued
MUE (X11) - DISCONTINUED
Stars: ✭ 21 (-52.27%)
Mutual labels:  blockchain, cryptocurrency
Blockchain Papers
区块链相关的有价值的文献
Stars: ✭ 20 (-54.55%)
Mutual labels:  blockchain, cryptocurrency
Microstellar
An easy-to-use Go Library for the Stellar payment network
Stars: ✭ 41 (-6.82%)
Mutual labels:  blockchain, cryptocurrency

Halocoin

In development

this is real, ok?

What is this?

Halocoin is my personal project to learn, experiment and build around blockchain technology. This project is by no means production ready or close to actual implementation of Bitcoin protocol. However, I have tried to imitate what is proposed in Bitcoin white paper. For example, it is still missing Merkle Trees for transactions which is a core property of Bitcoin.

Although source code is not related to original repository anymore and I already removed the fork tag, I want to acknowledge my initial start point. I thank zack-bitcoin for putting effort into developing a minimal blockchain.

Objectives of this project:

  • Readable code
  • Modular services that explains how blockchain functions
  • Blockhain is a consensus protocol between peers. How does client side handle everything?
  • CLI or GUI to experiment with a cryptocurrency.
  • Enable people to learn and share knowledge on blockchain, which is the real innovation of Bitcoin.

Blockchain services include:

  • State : Take care of caching blockchain transactions and client-side data. Answers the question: What is the state right now?
  • Blockchain : Schedule adding, deleting, forking on blockchain
  • API : Answer requests coming from client
  • Peers Check : Regularly check known peers to stay up-to-date
  • Peer Listen : Listen to other peers who are checking

Getting started

Halocoin is packaged according to distutils guidelines that is supported by PyPI. As like any other python project, I recommend you to install this on a virtualenv.

Also, Halocoin only works and tested on Python 3 and above.

git clone https://github.com/halilozercan/halocoin
cd halocoin
virtualenv venv -p python3
source venv/bin/activate
python3 setup.py install

or

pip install halocoin

How to run

cli.py module offers a cool CLI to interact with the blockchain engine. When you install this package, you can call this module by 'halocoin' executable. However, this CLI does not daemonize the engine when you start it. Instead users are free to choose from any daemonization methods that they prefer (supervisor, nohup, screen, etc..)

You can start the client by running

halocoin start

Every service associated with blockchain runs at startup. This implies that your client will immediately start synchronizing with p2p network. Initial peer list is hard-coded into client but you can update this list by updating your config file. Config file can be specified at startup or can be edited manually after first start. Default data folder is inside your home directory and named .halocoin. You can defined another data folder by --dir option. Details of CLI are given above.

How to use

As mentioned, halocoin comes with a minimalistic CLI but all it does is converting your command lines request into HTTP requests. Then, it sends these requests to the running Restful API. If you prefer, you can use this API with another client.

To interact with blockchain, you need to have an account, a wallet. You can create a wallet by running

halocoin new_wallet --wallet wallet_name

or by making an HTTP request to (GET or POST)

http://localhost:7001/new_wallet
Necessary parameters: wallet_name, password

If you prefer CLI, you will be prompted to enter the password that is going to be used for encryption of the wallet. This password prompt will always pop up when you use your wallet if you do not set a default wallet.

More documentation coming soon!!

Since CLI is not ready and UI is ported from another project originated from this repository, I prefer to use Restful API to talk with the client.

List of wallets

http://localhost:7001/wallets

New Wallet:

http://localhost:7001/new_wallet

Query Parameters:

  • wallet_name : String
  • password : String
  • set_default : boolean

Blockcount:

http://localhost:7001/blockcount

Info Wallet:

http://localhost:7001/info_wallet

Returns information about a wallet. Address, public key, current balance and etc. If no parameters are given, client will return information about current default wallet. If it does not exist, an error will be thrown.

Query Parameters:

  • wallet_name : String
  • password : String

Mempool

http://localhost:7001/mempool

Transactions that are waiting in the pool

Blocks

http://localhost:7001/blocks

Query Parameters:

  • start : int
  • end : int

Balance

http://localhost:7001/balance

Query Parameters:

  • address : String

Send

http://localhost:7001/send

Send halocoins to another address.

Query Parameters:

  • address : String
  • amount : int
  • wallet_name : String
  • password : String
  • message : String optional
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].