Git Product home page Git Product logo

chickenticket's Introduction

Chicken Ticket

PyPI

DEAR USER, THIS BRANCH IS IN DEVELOPMENT. THERE IS CURRENTLY NOT A STABLE BRANCH FOR USE IN PRODUCTION. USE AT YOUR OWN RISK

Chicken Ticket is a Python powered blockchain solution. Users are encouraged to meander about the codebase, learn the nitty gritty details of what makes a coin tick, fork and design your own coin, or use as your every day cryptocurrency. I'm kind of rewriting things, so things may get weird. I'm doing so to make ChickenTicket even better as a library. Everything is broken down into finer components. Transactions, blocks, the node, all have a separate file dedicated to their respective logic. Most, if not all, of the core elements of the blockchain can be serialized into a string. For example:

Simply convert any of the following objects (after instantiation) with str(cls):

  • Transaction
  • Block
  • Mempool
  • Input
  • Output
  • Address
  • Alias
  • Peer
  • KeyPair
  • Node

Why?

ChickenTicket is meant to be a PoS coin. We plan to offer a faucet, a tipbot, and some other services for the coin to incentivize usage and ease getting into the coin. The coin is based on modules that are included in the Python standard library and other pure Python libraries such that CHKN can run on anything that supports Python. Speed and reliability is our number 1 goal.

Tech

Chicken Ticket uses a number of technologies:

  • [Python 3] - A powerful object-oriented programming language.
  • [SQLite] - An ACID-compliant database solution for storing information in a single file, locally.
  • [Msgpack] - Responsible for compressing and serializing network messages.
  • [PyCryptodomex] - Low-level cryptographic primitives for making the coin secure (hashlib for pure Python install).
  • [ECDSA] - Elliptic Curve Digital Signature Algorithm. Used for generating keys fast and securely.
  • [Flask] - Microframework webserver. httpnode uses this to provide a very basic node.
  • [qrcode] - Generate a QR code from data, such as an address.
  • [pillow] - Working with images, used by qrcode.
  • [PySimpleGUI] - Used by simplegui to provide a basic wallet for use by end-users.

Installing from source

Chicken Ticket requires Python 3.6+ to run. Chicken Ticket requires Visual Studio Build Tools or any GCC compiler to install the C-based libraries.

Clone this repository after installing Git:

$ git clone https://github.com/Aareon/chickenticket

Install the dependencies after cloning:

Unix

$ cd chickenticket
$ python3 -m pip install -r requirements.txt

Windows

$ cd chickenticket
$ py -3 -m pip install -r requirements.txt

How to use

After installing requirements, launch the wallet with:

python3 src/simplegui.py

Wallet setup is automated and will guide you through the process.

Development

Want to contribute? We ❤️❤️❤️ pull requests! Please test code extensively before creating a pull request. Keep in mind, we are strong supporters of idiomatic and beautiful Python code.

Social

Todos

  • MOAR TESTS
  • Probably need to generate the genesis block, just saying. Done
  • Peers and Nodes (including websocket handling, etc. Should be fun 😅) (Partially done)
  • Sending and receiving transactions
  • DSL for sub-contracts
  • Mining
  • Clean up!
  • Graphical Wallet (simplegui.py)

Screenshots

The ChickenTicket simple GUI

License

MIT

chickenticket's People

Contributors

aareon avatar anonymousdapper avatar burntrouter avatar cvsae avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.