Skip to content

Releases: cardano-foundation/cardano-wallet

Cardano Wallet Backend - Jörmungandr

25 Jul 08:20
v2019-07-24
b9a860f
Compare
Choose a tag to compare
Pre-release

Overview

This release introduces a new target chain producer for the wallet backend: [email protected]. The software therefore comes in two different flavours though users are expected to pick only one and stick to it for the underlying networks behind cardano-http-bridge and Jörmungandr aren't compatible. The support for cardano-http-bridge is indeed provisional and will soon become legacy. New users should favor cardano-wallet-jormungandr for a better experience.

Program Platform Description
cardano-wallet-jormungandr.tar.gz
linux-x86_64
A CLI tool to start and interact with a wallet server using Jörmungandr as a chain producer. See Main Features below.
cardano-wallet-jormungandr.sha256
N/A
Checksum for the executable in cardano-wallet-jormungandr.tar.gz
cardano-wallet-http-bridge.tar.gz
linux-x86_64
A CLI tool to start and interact with a wallet server using cardano-http-bridge as a chain producer. See Main Features below.
cardano-wallet-http-bridge.sha256
N/A
Checksum for the executable in cardano-wallet-http-bridge.tar.gz
cardano-wallet.sh
linux-x86_64
Auto-completion script for cardano-wallet (works for all flavours)

Main Features

cardano-wallet

  • A command-line interface which exposes the following features (see CLI manual below):

    • Create and Delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • Generate BIP-39 mnemonic sentence (english) of various sizes
    • Update wallet metadata
    • Create and submit transactions from a single wallet
    • List known (used or unused) addresses of a wallet
    • Serve wallet against cardano-http-bridge
    • Launch wallet against cardano-http-bridge
    • ![][new] Serve wallet against Jörmungandr
    • ![][new] Launch wallet against Jörmungandr
    • ![][new] Estimate transaction fee
    • ![][new] Visualize wallet's UTxO distribution
    • ![][new] Update wallet encryption passphrase
  • A web server which exposes the following features (see API Documentation below):

    • Create and delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • Update wallet metadata & wallet encryption passphrase
    • Create and submit transactions from a single wallet
    • List known (used or unused) addresses of a wallet
    • API and server logs
    • ![][new] Estimate transaction fee
    • ![][new] Visualize wallet's UTxO distribution
  • Node.js-compatible IPC server with custom protocol

  • Data-persistence to disk via SQLite

Known Limitations

  • ⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).
  • ⚠️ Only Jörmungandr BFT node is currently supported

Bug Fixes

Ticket Title
#409 cardano-wallet server fails with unpleasant error when does not connect to http-bridge within a few seconds
#423 Starting mainnet server on testnet bridge results in unfriendly error message.
#551 Unstable order when reading transaction history

Known Issues

Installation Instructions

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

with [email protected]

  1. Install [email protected] from the official repository.

  2. Download cardano-wallet-jormungandr.tar.gz and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin.

$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet-jormungandr.tar.gz | tar xz -C $HOME/.local/bin
  1. (optional) Download and install bash/zsh auto-completion script:
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet.sh > /etc/bash_completion.d
$ source /etc/bash_completion.d/cardano-wallet.sh
  1. Start cardano-wallet --help and see available parameters.

with cardano-http-bridge

  1. Install cardano-http-bridge from our fork.

    • Install the rust toolchain.
    • In terminal run cargo install --git https://github.com/KtorZ/cardano-http-bridge.git --branch cardano-wallet-integration
    • make sure $HOME/.cargo/bin is on your $PATH
  2. Download cardano-wallet-http-bridge.tar.gz and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin.

$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet-http-bridge.tar.gz | tar xz -C $HOME/.local/bin
  1. (optional) Download and install bash/zsh auto-completion script:
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet.sh > /etc/bash_completion.d
$ source /etc/bash_completion.d/cardano-wallet.sh
  1. Start cardano-wallet --help and see available parameters.

Documentation

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

Changelog

Jörmungandr Integration Testing
PR Description
#476 Jörmungandr binary roundtrips
#496 Enable Integration Tests for Jörmungandr (Part III: Command-Line tests)
#503 Review deployment script to include both jormungandr and http-bridge
#504 Preliminary integration tests cleanup before turning on remaining ones on Jörmungandr
#506 PORT_ tests for Jörmungandr
#508 Create Jormungandr Config from command-line options
#509 Enable launcher specs on Jörmungandr,
#517 Better errors for --genesis-block and --bft-leaders
#520 Pass --quiet and --verbose options down to Jörmungandr
#523 Fix coin selection max number of inputs not diminishing as expected
#525 Jormungandr.NetworkSpec: Add more error path tests
#528 Timeout test for serve for jormungandr and http-bridge
#530 Jormungandr test coverage
#537 CLI golden tests for common command usage
#540 add unknown input unit tests in Jormungandr
#570 add tooBigTransaction Jormungandr unit tests
Review Coin Selection
PR Description
#536 Use tx max size & estimator to figure out the right input upper-bound in coin selection
Finalize 'Transactions' API endpoints
PR Description
#495 Transaction estimateMaxNumberOfInputs
#497 Add listTransactions in WalletLayer
#500 Integration tests covering ErrInputsDepleted case
#507 Add estimate fee endpo...
Read more

Cardano Wallet Backend - Logging & SQLite (hotfix)

02 Jul 16:11
v2019-07-02
8049616
Compare
Choose a tag to compare

Overview

Program Platform Description
cardano-wallet
linux-x86_64
A CLI tool to start and interact with a wallet server. See Key Features below.
cardano-wallet.sh
linux-x86_64
Auto-completion script for cardano-wallet

This release is a hotfix for v2019-06-24 which had a flaw regarding the wallet restoration: restoration workers wouldn't be restarted with restarts of the wallet server.

Main Features

See v2019-06-24

Bug Fixes

Ticket Title
#484 Restoration workers aren't restarted with the server

Known Issues

Ticket Title
#409 cardano-wallet server fails with an unfriendly error when it does not connect to http-bridge within a few seconds
#423 Starting mainnet server on testnet bridge results in unfriendly error message.

Installation Instruction

See v2019-06-24

Documentation

See v2019-06-24

Changelog

Bugs Sprint 25-26
PR Description
#458 Scenarios for 0 amount tx for multi and single output for CLI and API
#486 re-start restoration workers when restarting the application,
Jörmungandr Integration
PR Description
#463 Implement Jörmungandr NetworkLayer postTx
#464 fix Jörmungandr witness calculation
#470 Turn on integration tests for Jörmungandr (Part I: Addresses & Wallets scenarios),
#471 Make faucet with 10 available UTxO for Jörmungandr,
#473 Get initial fee policy from the network (Jörmungandr),
#475 Turn on integration tests for Jörmungandr (Part II: Transactions scenarios),
#480 Move generic CLI functionality into cardano-wallet-cli library.,
#483 Integrate Jörmungandr backend with CLI.,
#487 Stricter jörmungandr binary encoders regarding integer overflow,
Logging
PR Description
#492 Sqlite: Use the structured logging approach,
#485 Review logging in API layer,
#449 tests: Add a small test of Sqlite logging
Miscellaneous / Technical Debts
PR Description
#489 Test invalid cli args and params,
#482 Provide ToText and FromText instances for Hash \Genesis\,
#479 Add development flag for cardano-wallet target.,
#478 Add ToText/FromText instances for String.,
#477 Use arbitraryBoundedEnum instead of genericArbitrary where possible.,
#468 Add missing roundtrip ToText/FromText tests for Cardano.Wallet.Primitive data types.,
#459 update 'listWallets' status in API specifications,
#457 Fixed wrong timeout in test expectations + update API specification with latest feature availability,
#456 bump revision for iohk-monitoring-framework,
#455 bump version to 2019.6.24, preparing next release,
#454 Integration Test Scenarios on top of Jörmungandr (Initial Setup),
#453 another attempt trying to cope with 500 when fetching network tip shortly after init (bridge),
#452 Review transaction ids golden tests (only new addresses),
#451 Parameterize Tx data-type over the wallet core engine (allowing to work with different representations),
#450 Replace CLI --min-log-severity argument with --quiet and --verbose switches.

Full Changelog

Signatures

Name Role Approval
Matthias Benkort @KtorZ Technical Team Lead ✔️
Piotr Stachyra @piotr-iohk QA Engineer ✔️
Tatyana Valkevych @tatyanavych Release Manager ✔️

Cardano Wallet Backend - Logging & SQLite

24 Jun 16:09
v2019-06-24
2de07c5
Compare
Choose a tag to compare

Overview

Program Platform Description
cardano-wallet
linux-x86_64
A CLI tool to start and interact with a wallet server. See Key Features below.
cardano-wallet.sh
linux-x86_64
Auto-completion script for cardano-wallet

This release tries to close the gap for allowing Daedalus to start integrating with the wallet backend. It also comes bundled with an SQLite persistence layer to allow saving to disk the wallet state. On the way to testnet and mainnet releases, we have also introduced better structured logging in this release, with some degrees of control regarding the verbosity of the software.

We have simplified a bit the software organization and merged together cardano-wallet and cardano-wallet-launcher in a single binary cardano-wallet. The launcher is now available as a launch command.

⚠️ This release contains a critical issue regarding wallet restoration (see #484).

This issue is fixed in v2019-07-02.

Main Features

cardano-wallet

  • A command-line interface which exposes the following features (see CLI manual below):

    • Create and Delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • Generate BIP-39 mnemonic sentence (english) of various sizes
    • Update wallet metadata
    • Create and submit transactions from a single wallet
    • List known (used or unused) addresses of a wallet
    • ![][new] --state option for cardano-wallet address list
    • ![][new] serve command (replaces server ⚠️ breaking-change ⚠️)
    • ![][new] launch command (replaces cardano-wallet-launcher ⚠️ breaking-change ⚠️)
    • ![][new] --state-dir option for cardano-wallet launch
    • ![][new] --database option for cardano-wallet serve
    • ![][new] --random-port option for cardano-wallet launch and cardano-wallet serve
    • ![][new] --quiet and --verbose options for cardano-wallet launch and cardano-wallet serve
  • A web server which exposes the following features (see API Documentation below):

    • Create and Delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • Update wallet metadata & wallet encryption passphrase
    • Create and submit transactions from a single wallet
    • List known (used or unused) addresses of a wallet
    • ![][new] Filter addresses by state (used or unused)
    • ![][new] SQLite backend to persist the wallet state to disk!
    • ![][new] API request / response logging
    • ![][new] Database debug logs
    • ![][new] (Partial) application-level logs
  • ![][new] Node.js-compatible IPC server with custom protocol

Known Limitations

  • ⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).

  • ⚠️ So far, only one backend is supported: cardano-http-bridge (run on the Byron-OFT era, experimental stability).

Bug Fixes

Ticket Title
#250 GET v2/wallets does not list wallets from oldest to newest
#260 No additional error message in case of 4xx responses
#324 Bech32 occassionally fails when decoding a string with an omitted character
#326 Cannot post transaction after updating wallet's passphrase
#333 Sending transaction to not-valid address (yet being base58 encoded string) gives HTTP 500 -> "Something went wrong"
#364 Transaction with amount 0 on http bridge fails with error HTTP 500
#397 CLI wrongly returns exit code 0 when providing not existing wallet id
#398 CLI unnecessarily asks for password when posting transaction from a non-existing wallet
#403 API swagger specification isn't a valid swagger file

Known Issues

Ticket Title
#409 cardano-wallet server fails with unpleasant error when does not connect to http-bridge within a few seconds
#423 Starting mainnet server on testnet bridge results in unfriendly error message.
#484 Restoration workers aren't restarted with the server

Installation Instruction

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

  1. Install cardano-http-bridge from our fork.

    • Install the rust toolchain.
    • In terminal run cargo install --git https://github.com/KtorZ/cardano-http-bridge.git --branch cardano-wallet-integration
    • make sure $HOME/.cargo/bin is on your $PATH
  2. Download cardano-wallet 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
  3. Start cardano-wallet --help and see available parameters.

Documentation

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

Changelog

SQLite implementation for the DB Layer
PR Description
#259 Generate DBLayer tests with quickcheck-state-machine
#337 Sqlite: add more locking to DBLayer methods
#341 Sqlite: Initial benchmark for putTxHistory
#347 Sqlite: use repsertMany instead of deleteMany+putMany
#348 Sqlite benchmark: Use a file-based DB
#349 Some small fixes to DB.StateMachine module.
#360 Sqlite: Fix deletion for larger numbers of checkpoints/transactions
#367 Make DB QSM tests fail if one or more tags are not covered.
#370 Recreate passing tests and file-based and in-memory runQuery
#377 cli: Add "local" network to launcher, and --state-dir for the database
#378 Clean ups of Sqlite test code
#379 Use SQLite in restoration benchmark (instead of MVar implementation)
#406 Use SQLite in integration tests scenarios (instead of MVar)
#413 Additional tests checking if files exists when using --database and --state-dir options
Jörmungandr Integration
PR Description
#310 Add Jörmungandr Servant Api Type
#313 Address Format in Shelley Era (Part 1: abstract over the address encoding)
#321 Jormungandr m with getTipId implementation
#322 Simplify folder structure, e.g. s/Binary.HttpBridge/HttpBridge.Binary/
#323 Miscellaneous Bech32 library fixes and improvements.
#325 Add Cardano.Wallet.Jormungandr.Network.Api
#327 Add extra debugging information to Bech32 decoding corruption tests.
#328 Add known-to-fail counterexamples to Bech32 string corruption tests.
#329 move Cardano.Environment.{HttpBridge,Jormungandr} to Cardano.Wallet.{HttpBridge,Jormungandr}.Environment
#332 Fix the Bech32 character mutation test.
#336 Address Format in Shelley (Part 2: implementing address encoder and decoders + tests)
#338 Fix index limits in Bech32 mutation tests
#340 Strengthen the precondition for the Bech32 mixed-case mutation test.
#362 Add initial support for serializing signed transaction
#369 Implement Jörmungandr getBlock and getDescendants
#382 review & fix jormungandr configuration to enable block production in BFT mode
#383 Jörmungandr: mkNetworkLayer with networkTip
#384 Change wallet currentTip from SlotId to BlockHeader
#385 Add labels to binary decoders for improved debugging
#394 Handle getBlockHeader special cases for proofs
#396 Relocate reusable integration tests components to core
#400 Preliminary integration tests between Jormungandr <-> Network Layer (networkTip)
#405 Implement NetworkLayer getNext for Jörmungandr
#417 Jörmungandr: Separate concern between keyToAddress and get/putAddress
#424 Cr...
Read more

Cardano Wallet Backend - Transaction Support

24 Jun 12:21
v2019-05-24
8977931
Compare
Choose a tag to compare

Overview

Program Platform Description
cardano-wallet
linux-x86_64
A CLI tool to start and interact with a wallet server. See Key Features below.
cardano-wallet.sh
linux-x86_64
Auto-completion script for cardano-wallet
cardano-wallet-launcher
linux-x86_64
A commodity utility to launch a wallet server with a corresponding node backend.

This release brings full transaction support (on Byron network) to the API and the command-line. It also contains a few minor bug fixes and documentation improvements (as well as much more descriptive and user-friendly errors from the API and the command-line).

Key Features

cardano-wallet

  • A command-line interface which exposes the following features (see CLI manual below):

    • Create and Delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • Generate BIP-39 mnemonic sentence (english) of various sizes
    • ![][new] Update wallet metadata
    • ![][new] Create and submit transactions from a single wallet
    • ![][new] List known (used or unused) addresses of a wallet
  • A web server which exposes the following features (see API Documentation below):

    • Create and Delete wallet
    • Get details of a particular wallet
    • List all known wallets
    • ![][new] Update wallet metadata & wallet encryption passphrase
    • ![][new] Create and submit transactions from a single wallet
    • ![][new] List known (used or unused) addresses of a wallet

cardano-wallet-launcher

  • A command-line interface which starts and supervise both a wallet server and a cardano-http-bridge

Known Limitations

  • ⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).

  • ⚠️ So far, only one backend is supported: cardano-http-bridge (run on the Byron-OFT era, experimental stability).

  • ⚠️ The wallet backend server is shipped with only an in memory storage which is volatile: restarting the server will erase the memory completely.

Bug Fixes

Ticket Title
#291 Shuffle statistical tests sometimes fail...

Known Issues

Ticket Title
#250 GET v2/wallets does not list wallets from oldest to newest
#260 No additional error message in case of 4xx responses
#324 Bech32 occassionally fails when decoding a string with an omitted character
#326 Cannot post transaction after updating wallet's passphrase
#333 Sending transaction to not-valid address (yet being base58 encoded string) gives HTTP 500 -> "Something went wrong"
#364 Transaction with amount 0 on http bridge fails with error HTTP 500
#397 CLI wrongly returns exit code 0 when providing not existing wallet id
#398 CLI unnecessarily asks for password when posting transaction from a non-existing wallet
#403 API swagger specification isn't a valid swagger file

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

⚠️ The wallet server & launcher both expect a NETWORK ENV var to be available with one of the following value:

  • mainnet
  • testnet
  • staging (not supported)

This variable commands which network the software should connect to and interact with.

Documentation

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

Changelog

SQLite implementation for the DB Layer
PR Description
#246 Tidy up some of the formatting within Cardano.Wallet.DB.Sqlite.
#247 Set up database connection and create tables
#270 Relocate properties to DBSpec for further sharing
#272 Add functions for serializing keys as text
#276 Sqlite: add a test of cascading delete
#282 SQLite: Add put/readPrivateKey to DBLayer
#283 Sqlite: add checkpoints and transactions to DBLayer
#288 Sqlite: implement withLock from DBLayer
#293 Add indexes to certain SQLite table columns
#300 Sqlite: enable db property tests and fix failures
Jörmungandr High-Level Integration
PR Description
#244 Scaffold lib/jormungandr folder
#319 Include more examples from BIP-173 vectors in tests
#245 Jörmungandr block format header decoding
#248 Bech32 Library - port of reference implementation
#266 Add 'Initial' message-decoder with config parameters
#271 Use richer errors for Bech32 encoder and decoder
#273 Implement Jörmungandr Transaction-message decoder
#275 Docs, polish and config param 16
#277 Further enhancements to the Bech32 library.
#284 Build Jörmungandr on CI - another take
#287 Make CI faster especially on PR builds
#290 Remove redundant job condition in travis (already at top-level)
#296 Improve bech32 coveralls
#297 Add Jörmungandr integration tests
#305 Add genesis.yaml and instructions for how to use it
#309 Change jormungandr rest port to 8081
#312 Fix Bech32 decoder + encoder
Transaction Support
PR Description
#258 Enable transaction support in integration tests for cardano-http-bridge
#263 Integration test: Polling for wallet fixture & Better error handling
#269 Fix references to 'ApiTransaction' in swagger specification
#274 Implement ability to list addresses in the wallet layer, API and CLI
#281 First end-to-end transaction Integration test (with http-bridge)
#301 Transaction integration tests
#317 Review Fee Window for Tx scenarios
Miscellaneous / Technical Debts
PR Description
#241 Use more natural English in the CLI usage string.
#243 Start reviewing Primitive.Types docs
#249 Wallet Management Remaining Endpoints: update & update passphrase
#251 WALLETS_GET,LIST,DELETE integration tests
#252 update 4xx responses in API spec
#253 Add CLI manual to README
#254 Parse name and wallet-id as argument
#255 Fix warning about license-file of lib/cli/cardano-wallet-cli.cabal
#257 Wallet update integration tests
#261 Wallet update passphrase integration tests
#262 Add bors.toml
#264 Basic integration scenarios for CLI
#267 Fix inconsitent response code wallet update
#278 More integration tests for CLI (including minor fixes in CLI)
#279 Take into account out-of-process executions for code coverage
#285 Fix bors config
#289 show feature availability in API specification
#303 Release deployments tweaks + template
Bugs - Sprint 19/20
PR Description
#292 Fix Change Calculation
#295 fix shuffle tests in CoinSelectionSpec once and for all
#298 More Descriptive Errors (Part 1/2)
#299 More Descriptive Errors (Part 2/2)
#304 Remove temporary code from CLI for ...
Read more

Cardano Wallet Backend - Wallet Management

08 May 19:42
v2019-05-08
05e8a37
Compare
Choose a tag to compare

Overview

Program Platform Description
cardano-wallet
linux-x86_64
A CLI tool to start and interact with a wallet server. See Key Features below.
cardano-wallet-launcher
linux-x86_64
A commodity utility to launch a wallet server with a corresponding node backend.

Key Features

This release contains support for basic wallet management features via web
server (JSON through HTTP) or a command-line interface.

cardano-wallet

  • A command-line interface which exposes the following features (see CLI manual below):

    • ![][new] Create and Delete wallet
    • ![][new] Get details of a particular wallet
    • ![][new] List all known wallets
    • ![][new] generate mnemonic sentence (english) of various sizes
  • A web server which exposes the following features (see API Documentation below):

    • ![][new] Create and Delete wallet
    • ![][new] Get details of a particular wallet
    • ![][new] List all known wallets

cardano-wallet-launcher

  • A command-line interface which starts and supervise both a wallet server and a cardano-http-bridge

Known Limitations

  • ⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).

  • ⚠️ So far, only one backend is supported: cardano-http-bridge (run on the Byron-OFT era, experimental stability).

  • ⚠️ The wallet backend server is shipped with only an in memory storage which is volatile: restarting the server will erase the memory completely.

Known Issues

Ticket Title
#250 GET v2/wallets does not list wallets from oldest to newest
#291 Shuffle statistical tests sometimes fail...

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

NOTE:

The wallet server & launcher both expect a NETWORK ENV var to be available with one of the following value:

  • mainnet
  • testnet
  • staging (not supported)

This variable commands which network the software should connect to and interact with.

Documentation

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

Changelog

Wallet Layer Integration (with cardano-http-bridge)
PR Description
#88 Add property tests for the database layer
#97 Fix typo in http-bridge tests
#98 Increase test coverage for http-bridge integration
#115 Technical debt: add unit tests for network and wallet layer
#132 Http-bridge with a local cluster in integration tests
#134 Move test data archives
#135 Get cardano-node-simple available in CI & allow manipulating stream output when launching commands
#149 Prevent network layer to "die" when node backend fails
#153 Better test coverage for 'Network.listen'
#179 Runtime network configuration as ENV var
#193 Provide clearer failure reason when wallet is not syncing
#202 Redirect launcher, wallet & bridge output to temporary files during integration tests
#205 Review high-level interfaces ('IsOurs', 'IsOwned', 'GenChange') to be more granular
#207 Parameterize wallet core over the 'TxId' format
#210 Parameterize wallet core over the 'Address' format
#212 Code re-organization: Extract Http-bridge specifics into a dedicated package
#226 Make integration tests failing with a clear message on mainnet and staging
Restore Historical Data
PR Description
#137 Add tracking of known transactions to the wallet model
#150 Store transaction history outside of the wallet state
#156 Wallet Id deterministic calculation from root public key
#158 Extend DB layer & wallet to support wallet metadata
#172 Unify 'watchWallet', 'listen', 'processWallet', 'tick' etc.. into one 'restoreWallet'
#180 Implement some missing API handlers for the wallets endpoints
#234 Fix 'slotRatio' case where the numerator is further than the denominator
Benchmarking & Nightly Builds
PR Description
#120 Remove unused semigroup instance for address pools
#157 Add restore benchmarks
#160 Add new "special" address discovery scheme (proportional ownership) for testing and benchmarking
#169 Fix benchmarks on Buildkite after last refactor
#187 Add buildkite nightly build badge (and link) to README
#190 Move ENV var export from buildkite script to buildkite pipeline settings
Coin Selection, transaction creation & submission
PR Description
[#114](https://github.com/input-output-hk/cardano-wallet...
Read more

Cardano Wallet Backend - Foundations

20 Mar 11:48
v2019-03-20
c93b82b
Compare
Choose a tag to compare
Pre-release

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'