Skip to content

Cardano Wallet Backend - Foundations

Pre-release
Pre-release
Compare
Choose a tag to compare
@WilliamKingNoel-Bot WilliamKingNoel-Bot released this 20 Mar 11:48
v2019-03-20
c93b82b

Overview

This initial release of Cardano Wallet Backend includes two binaries:

  • cardano-wallet-server
  • cardano-wallet-launcher

The cardano-wallet-server in future will serve API and CLI interfaces for the
wallet backend. In this release it is just a stub.

The cardano-wallet-launcher is responsible for starting (and terminating when
closed) the cardano-wallet-server and cardano-http-bridge which is an interface
that Cardano Wallet Backend uses to interact with the blockchain. The
cardano-http-bridge is therefore a prerequisite that needs to be installed
before running the cardano-wallet-launcher.

Key Features

  • N/A

Bug Fixes

  • N/A

Installation Instruction

Please note that currently only Unix\Linux platform is supported.

  1. Install cardano-http-bridge.

    • Install the rust toolchain.
    • In terminal run cargo install --git https://github.com/input-output-hk/cardano-http-bridge.git
    • make sure $HOME/.cargo/bin is on your $PATH
  2. Download cardano-wallet-server and cardano-wallet-launcher and put it in
    the directory that is on your $PATH, e.g. /usr/local/bin. Make sure to
    add exec permissions on binary files:

    • chmod u+x cardano-wallet-server cardano-wallet-launcher
  3. Start cardano-wallet-launcher --help and see available parameters and
    follow instructions about how to install cardano-http-bridge if you
    haven't done already in point 1.

Documentation

Link Audience
API Documentation Users of the Cardano Wallet API
Haddock Documentation Haskell Developers using the cardano-wallet as a library

Changelog

Setup new cardano-wallet repository & CI
PR Description
#9 Stylish, hlint
#10 Version specification documents (api & formal specs)
#13 Add .gitignore
#15 Initial stack project and Travis CI
#17 Add .editorconfig
#18 Rename README to README.md (in specifications/api)
#19 Add Coveralls & Stylish Haskell to CI
#24 Re-introduce 'Acceptance Criteria' as part of the issue template
#31 Review .travis.yaml to allow multiple jobs & haddock export
#45 Fix 406 to be correct 410 error code in API specification
#65 Add build instructions for the http bridge in CI
#66 Update Wallet API specification draft document
#70 Add cardano-http-bridge to environment of stack --nix
#85 Review deploy pipeline for Travis for executables
#86 Add mising target to stack haskell coverage reports
Receive & Process Blocks (from cardano-http-bridge)
PR Description
#28 Add block decoder
#32 Pack file decoder
#35 Adding ticking functionality for block polling
#37 Review folder structure, file documentation and pragmas
#40 Add a basic API client for the Rust Cardano HTTP Bridge
#41 Add nextBlocks function
#44 Review BlockSyncer Tests: Separate IO from pure code
#48 tests: Add a couple negative tests for block decoding
#49 Apply miscellaneous coding style fixes
#50 Tweak Blocks Generator + Moar Tests + Better Coverage
#54 Add startBlockSyncer
#57 Review style of ChainProducer modules + add license header
#60 Review Network Layer
#66 Merge BlockSyncer with NetworkLayer
#71 Allow BlockSyncer.listen to catch up with the node
#80 Integration Tests Http Bridge
Basic Launcher
PR Description
#27 Docopt for CLI parsing
#38 Launch http bridge and wallet together
#75 launcher: When terminated, ensure child processes are cleaned up
#77 Add manual steps describing how to check launcher behavior regarding POSIX signals
#78 Make it possible to connect wallet to staging
#84 remove temporary dummy wallet server to avoid confusion
#87 QA review of #8
Support Wallet Creation
PR Description
#25 Wallet Primitive Types
#29 Add additional wallet primitives and wallet layer primitives
#34 Compute TxId
#42 Implement txId hash using CBOR encoders
#43 Minimal Viable Wallet Layer
#46 Address Derivation (Sequential)
#47 Port Mnemonic Module
#51 Address Discovery (Sequential)
#58 Few more unit tests for mnemonics + adjusting wallet API spec
#59 Review Slotting as Primitive
#61 Add an extra bit of documentation to the 'AddressDerivation' module
#82 Add createWallet and getWallet tests
Wallet Layer Integration (with cardano-http-bridge)
PR Description
#62 Add very preliminary interface/structure for wallet getter and creation
#64 Draft an initial interface for a DB Layer
#73 Connect Primitives to Layers
#81 Replace usage of 'mtl' with 'transformers'