Cardano Wallet Backend - Jörmungandr
Pre-releaseOverview
This release introduces a new target chain producer for the wallet backend: Jö[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
- Serve wallet against
Jörmungandr
- Launch wallet against
Jörmungandr
- Estimate transaction fee
- Visualize wallet's UTxO distribution
- 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
- Estimate transaction fee
- 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 Jö[email protected]
-
Install [email protected] from the official repository.
-
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
- (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
- Start
cardano-wallet --help
and see available parameters.
with cardano-http-bridge
-
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
-
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
- (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
- 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 endpoint |
#511 | ValidateSelection extension, errors and new estimate fee endpoint test cases |
#516 | add estimate fee CLI support |
#524 | DBLayer readTxHistory now returns a sorted list |
#526 | Introduce Iso8601Time type to support translation list CLI command. |
#527 | slot length based sleep duration |
#532 | Add transaction list CLI command. |
#533 | Tests for fee estimation and post tx when tx max size is reached for single and multi output tx |
#541 | Move Iso8601Range from Cardano.Wallet.Api to Cardano.Wallet.Api.Types |
#543 | Move splitAtLastOccurrence from bech32 to text-class . |
#544 | Add {From,To}HttpApiData instances for Iso8601Range . |
#548 | Extract out time formatting and parsing functions into separate module. |
#556 | Extend BlockchainParameters with slotsPerEpoch and block0Date |
#565 | add utxo statistics endpoint |
#569 | Rename SlotsPerEpoch to EpochLength |
#574 | Property-based tests for UTxO statistics |
#518 | Add ListTransactions to Api with stub handler (returning []) |
Bugs & Debts - Sprint 27-28
PR | Description |
---|---|
#419 | nix: Add script for auto-regenerating and fix the build |
#474 | Basic logging tests for cardano-wallet serve and launch |
#490 | optparse-applicative for the command-line |
#491 | Windows build |
#498 | Introduce type MnemonicSize with accompanying tests. |
#505 | show default size for mnemonic --size using 'ToText' instance |
#513 | Sqlite: close database on exit |
#514 | Add tests for Show instances in network and transaction layers. |
#515 | Fall back to supportedCrossSystems |
#519 | Add wallet update passphrase CLI command. |
#531 | Buildkite: Run DB bench in the nightly pipeline, |
#534 | Make sure process is terminated on failure in Launcher specs |
#535 | More tests for update passphrase via CLI |
#538 | Network.HttpBridge: Add ErrNetworkInvalid |
#539 | SQLite: fix numerous DELETE requests when inserting checkpoint |
#545 | Sqlite: Remove \Table\ from Persistent field names |
#546 | Integration test to test case when connecting to the wrong network (http-bridge) |
#547 | Fix integration tests 'fixtureWalletWith' function |
#550 | disable flaky 'Launcher' specs in CI merges... |
#552 | fix hard-to-satisfy pre-condition in property test |
#566 | Better structure for the internal organization of our state directory |
#568 | additional info in help for --network argument |
#576 | SqliteSpec: Fix occasional failure in QSM tests |
Signatures
Name | Role | Approval |
---|---|---|
Matthias Benkort @KtorZ | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Tatyana Valkevych @tatyanavych | Release Manager | ✔️ |