2015-03-03 02:52:45 +00:00
|
|
|
# Prototype directory
|
|
|
|
|
|
|
|
The contents of the `prototype` directory is the result of
|
|
|
|
consolidating several small & independent repos. Originally, each
|
|
|
|
small was a separate prototype/quick hack for experimentation
|
|
|
|
purposes. The code is preserved here for use as:
|
|
|
|
|
|
|
|
* Examples of what not to do ... the code **is** a bit ugly, after
|
|
|
|
all. <tt>^_^</tt>
|
|
|
|
* Some examples of what to do when prototyping in Erlang. For
|
|
|
|
example, "Let it crash" style coding is so nice to hack on quickly.
|
|
|
|
* Some code might actually be reusable, as-is or after some
|
|
|
|
refactoring.
|
|
|
|
|
2015-03-03 05:43:26 +00:00
|
|
|
The prototype code here is not meant for long-term use or
|
|
|
|
maintenance. We are unlikely to accept changes/pull requests for adding
|
|
|
|
large new features or to build full Erlang/OTP applications using this
|
|
|
|
code only.
|
|
|
|
|
|
|
|
However, pull requests for small changes, such as support for
|
|
|
|
newer Erlang versions (e.g., Erlang 17), will be gladly accepted.
|
|
|
|
We will also accept fixes for bugs in the test code.
|
|
|
|
|
2015-03-03 02:52:45 +00:00
|
|
|
## The corfurl prototype
|
|
|
|
|
|
|
|
The `corfurl` code is a mostly-complete complete implementation of the
|
|
|
|
CORFU server & client specification. More details on the papers about
|
|
|
|
CORFU are mentioned in the `corfurl/docs/corfurl.md` file.
|
|
|
|
|
2015-03-03 05:09:39 +00:00
|
|
|
This code contains a QuickCheck + PULSE test. If you wish to use it,
|
|
|
|
please note the usage instructions and restrictions mentioned in the
|
|
|
|
`README.md` file.
|
|
|
|
|
2015-03-03 02:52:45 +00:00
|
|
|
## The demo-day-hack prototype
|
|
|
|
|
2015-04-02 07:41:12 +00:00
|
|
|
This code in the `demo-day-hack` is expected to remain static,
|
|
|
|
as an archive of past "Demo Day" work.
|
|
|
|
|
|
|
|
See the top-level README.md file for details on work to move
|
|
|
|
much of this code out of the `prototype` directory and into real
|
|
|
|
use elsewhere in the repo.
|
2015-03-03 02:52:45 +00:00
|
|
|
|
|
|
|
## The tango prototype
|
|
|
|
|
2015-03-03 07:24:26 +00:00
|
|
|
A quick & dirty prototype of Tango on top of the `prototype/corfurl`
|
|
|
|
CORFU implementation. The implementation is powerful enough (barely)
|
|
|
|
to run concurrently on multiple Erlang nodes. See its `README.md`
|
|
|
|
file for limitations, TODO items, etc.
|
2015-03-03 11:15:00 +00:00
|
|
|
|
|
|
|
## The chain-manager prototype
|
|
|
|
|
|
|
|
This is a very early experiment to try to create a distributed "rough
|
|
|
|
consensus" algorithm that is sufficient & safe for managing the order
|
|
|
|
of a Chain Replication chain, its members, and its chain order.
|
|
|
|
|
|
|
|
Unlike the other code projects in this repository's `prototype`
|
|
|
|
directory, the chain management code is still under active
|
2015-04-17 16:42:47 +00:00
|
|
|
development. However, the chain manager code here in the `prototype`
|
|
|
|
subdirectory will remain frozen in time.
|
2015-03-03 11:15:00 +00:00
|
|
|
|
2015-04-17 16:42:47 +00:00
|
|
|
Efforts in April 2015 have moved the chain manager code to the "top level"
|
|
|
|
of the repository. All new work is being merged weekly into the `master`
|
|
|
|
branch, see `src/machi_chain_manager1.erl` and related source at the top of
|
|
|
|
the repo.
|