Git Product home page Git Product logo

cryptocurrencyfun's Introduction

CryptoCurrencyFun

CryptoCurrencyFun is a library for working with crypto currencies in .NET. The library is implemented using F#, but was designed to be usable from C# and other .NET languages.

The canonical example of a crypto currency is Bitcoin, although there are plenty of others. Most other crypto currencies are forks of Bitcoin and use the same protocol as Bitcoin, so generally this library will attempt to be compitable with as many as possibly. Currently it is being tested with Bitcoin, Litecoin and Dogecoin, and hopefully this will expand over time.

Any crypto currency that is a fork of Bitcoin is based a round a block chain. This is a ledger, or database, of all transaction that have taken place using the currency. The core of any Bitcoin-esque system is a peer to peer protocol for read and writing to the block chain. The ledger is broken down into two parts transactions and blocks. Transactions are where coins are passed between users of the currency and blocks group transactions together into a structure that can be written to the ledger because it has rare hash that been found by the currency's miners. A library for working with crypto currencies will need to provide tools for handling these concepts.

CryptoCurrencyFun provides, or will provide, the following types for working with crypto currencies:

  • A set of types that represent the various messages that pass over the peer to peer network, for the moment these live in Messages.fs

  • A type for connecting to the peer to peer network. This is PeerToPeerConnectionManager that lives in PeerToPeer.fs

  • A type for managing the transactions that are not yet written to the block chain. This is called MemoryPool and is in the process of being implemented, see MemoryPool.fs

  • A type for writing to the block chain. This does not exist yet.

  • A type to read from the block chain. Currenctly you can read sequentially from the block chain using BlockParserStream from BlockParser.fs. While sequential access is sometimes useful, it will be necessary to provide indexed access to the blockchain and this not currently implemented.

  • A type to generate and store new key public/private keys pairs and address. So far we can convert a public to address, see Address.fs, but nothing else.

  • A type to create and sign new transactions. This does not exist.

  • Some types for mining new blocks, this is not implemented, and is low priorty. We'll be concentrating on functionality to read and write from the network and may add mining functionlity later.

cryptocurrencyfun's People

Contributors

robertpi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.