@sdiehl sdiehl released this Nov 20, 2018

Assets 2


November 9, 2018

  • FCL: Workflow transitions are now based on petri nets, allowing concurrent
    workflow specifications embedded in contracts.
  • FCL: New Graphviz output, prints method caller preconditions.
  • FCL: Collections are now expressions instead of literals.
  • FCL: Method preconditions have been made more extensible by moving to a
    key/value pair syntax.
  • FCL: Temporal preconditions can be given to methods.
  • FCL: Add timediff primop
  • FCL: terminate primop now has type void
  • FCL: Temporary variables now have proper lexical scoping
  • The /contracts/:addr/callable endpoint now returns the callable methods
    along with the permitted callers
  • Adds command line option to specify "preallocated accounts" directory
  • Adds command line option to specify "network access token" directory
  • Fixed space leak in main block generation loop
  • General bug fixes and code cleanup
  • Fix bug in the type checker where expressions containing both polymorphic
    collection and asset primops are incorrectly considered well-typed.

@sdiehl sdiehl released this Jul 23, 2018 · 8 commits to master since this release

Assets 20


June 20, 2018

  • Add support for TLS on top of TCP transport layer
  • Make transport layer configurable: TCP, TCP/TLS, or in-memory
  • Add more robust supervision and recovery of Uplink Processes
  • FCL: Added Helper functions
  • FCL: Disallow global variable name shadowing
  • FCL: Added generic collection values and higher-order primops operating over
  • Bug fixes

@sdiehl sdiehl released this Jul 23, 2018 · 14 commits to master since this release

Assets 2


April 20, 2018

  • Simplify internal Node-to-Node messaging protocol by deriving the serialzation
    using GHC.Generics.
  • Fix hostname resolution on all supported operating systems.
  • All superfluous ByteString usage is removed.
  • Added the EncodedByteString typeclass and Base16, Base58, Base64, and Base64P
    ByteString types to allow for typesafe ByteString encoding representations
    throughout the codebase.
  • Added network-access-token such that all messages exchanged by nodes in the
    Uplink network must contain proof of possession of the network-access token;
    Uplink nodes that do not possess the preshared, private network-access-token
    will not be able to interact with an Uplink network in which membership is
    defined by the network-access-token.
  • All messages sent by Uplink nodes are now signed by the network-access-token
    private key, and all message received by Uplink nodes are verified to be from
    a node that possess the shared, private network-access-token.

@sdiehl sdiehl released this Mar 26, 2018 · 15 commits to master since this release

Assets 20


March 26, 2018

  • FIX: Initializing a node using uplink chain init with a LevelDB backend now
    (correctly) fails when a LevelDB database already exists at the supplied
    database directory.
  • FIX: Exporting Ledger and Blocks as XML using a LevelDB database path now
    (correctly) requires an existing database and does not instead create an empty
    database and export nothing.
  • Users can now export Uplink blocks and/or ledger state as JSON.
  • Users can now import Uplink blocks and/or ledger state when initializing an
    Uplink node with uplink chain init.
  • Added Simulation Msg to allow users to query contract simulation ledger state.
  • Addresses for Assets and Contracts are now derived by base58 encoding the hash
    of the hash of their origin transaction.
  • Timestamp fields are removed from transactions due to the fact that
    transaction ordering in a block and block timestamps carry more information
    about when the transacation modified the ledger.
  • Transaction uniqueness is now enforced across the entire history of the ledger
    using the sha3_256 hash of transaction datastructure contents.
  • Rewrote REPL to use Simulation Process. Added option to specify exported
    ledger state to simulate the contract in. Added tab completion on methods
    callable in current state.

@sdiehl sdiehl released this Feb 26, 2018 · 23 commits to master since this release

Assets 19


February 26, 2018

  • Added metadata field of assets.
  • Add support for enumeration types in FCL.
  • References to uninitialized global variables are now rejected at
  • Improved graph analysis on FCL contracts.
  • Fix JSON serialization of datetime values in contract storage
  • Change FCL asset type to explicitly reference 8 distinct asset types
  • Add polymorphic asset FCL prim ops that operate over all asset types
  • Added FCL Smart Contract simulation feature
  • Made logging more configurable: different services can log to
    different files.
  • Removed superfluous "return" construct from FCL

@sdiehl sdiehl released this Jan 26, 2018 · 25 commits to master since this release

Assets 16


January 26, 2018

  • Fix database initialization bugs on corner cases.
  • Removed necessity for a Postgres database to exist with the same name of the
    Postgres user creating the uplink database.
  • Consolidated Node data file reads & writes into a single module.
  • Added data query language for querying ledger state.
  • Added data query interface to RPC for doing cross contract/position
    aggregations for reporting.
  • Bazel build scripts for continuous integration.

@sdiehl sdiehl released this Dec 1, 2017 · 30 commits to master since this release

Assets 17


  • Added PostgreSQL persistence backend.
  • Added Transaction "graveyard'" for reporting on transactions
    that fail to commit.
  • Added database reset mechanism in test mode for provisioning test
  • Added Circulate transaction for assets.
  • Added RevokeAsset transaction for assets.
  • Added protocol for swappable data persistence, supporting LevelDB and SQL
  • Improved P2P performance using new asynchronous messaging handling. This will
    yield better performance when the network scales by number of nodes and geographical sparsity.
  • Fixed issues with database and log filepath locations relative to
  • Remove nodekey from accounts.
  • Fix Mac OSX filepath bugs.