Jan 21, 10-11 AM (75)
Jan 21, 11-12 PM (44)
Jan 21, 12-1 PM (46)
Jan 21, 1-2 PM (30)
Jan 21, 2-3 PM (28)
Jan 21, 3-4 PM (34)
Jan 21, 4-5 PM (32)
Jan 21, 5-6 PM (22)
Jan 21, 6-7 PM (16)
Jan 21, 7-8 PM (6)
Jan 21, 8-9 PM (14)
Jan 21, 9-10 PM (18)
Jan 21, 10-11 PM (14)
Jan 21, 11-12 AM (9)
Jan 22, 12-1 AM (11)
Jan 22, 1-2 AM (4)
Jan 22, 2-3 AM (12)
Jan 22, 3-4 AM (7)
Jan 22, 4-5 AM (2)
Jan 22, 5-6 AM (14)
Jan 22, 6-7 AM (6)
Jan 22, 7-8 AM (17)
Jan 22, 8-9 AM (11)
Jan 22, 9-10 AM (35)
Jan 22, 10-11 AM (30)
Jan 22, 11-12 PM (44)
Jan 22, 12-1 PM (52)
Jan 22, 1-2 PM (32)
Jan 22, 2-3 PM (67)
Jan 22, 3-4 PM (25)
Jan 22, 4-5 PM (29)
Jan 22, 5-6 PM (9)
Jan 22, 6-7 PM (5)
Jan 22, 7-8 PM (10)
Jan 22, 8-9 PM (12)
Jan 22, 9-10 PM (65)
Jan 22, 10-11 PM (1)
Jan 22, 11-12 AM (1)
Jan 23, 12-1 AM (6)
Jan 23, 1-2 AM (4)
Jan 23, 2-3 AM (4)
Jan 23, 3-4 AM (2)
Jan 23, 4-5 AM (1)
Jan 23, 5-6 AM (2)
Jan 23, 6-7 AM (0)
Jan 23, 7-8 AM (3)
Jan 23, 8-9 AM (2)
Jan 23, 9-10 AM (6)
Jan 23, 10-11 AM (2)
Jan 23, 11-12 PM (3)
Jan 23, 12-1 PM (7)
Jan 23, 1-2 PM (4)
Jan 23, 2-3 PM (3)
Jan 23, 3-4 PM (3)
Jan 23, 4-5 PM (1)
Jan 23, 5-6 PM (3)
Jan 23, 6-7 PM (3)
Jan 23, 7-8 PM (0)
Jan 23, 8-9 PM (3)
Jan 23, 9-10 PM (1)
Jan 23, 10-11 PM (4)
Jan 23, 11-12 AM (2)
Jan 24, 12-1 AM (4)
Jan 24, 1-2 AM (3)
Jan 24, 2-3 AM (2)
Jan 24, 3-4 AM (3)
Jan 24, 4-5 AM (0)
Jan 24, 5-6 AM (0)
Jan 24, 6-7 AM (0)
Jan 24, 7-8 AM (0)
Jan 24, 8-9 AM (1)
Jan 24, 9-10 AM (9)
Jan 24, 10-11 AM (2)
Jan 24, 11-12 PM (0)
Jan 24, 12-1 PM (0)
Jan 24, 1-2 PM (1)
Jan 24, 2-3 PM (0)
Jan 24, 3-4 PM (0)
Jan 24, 4-5 PM (0)
Jan 24, 5-6 PM (0)
Jan 24, 6-7 PM (7)
Jan 24, 7-8 PM (2)
Jan 24, 8-9 PM (0)
Jan 24, 9-10 PM (4)
Jan 24, 10-11 PM (3)
Jan 24, 11-12 AM (5)
Jan 25, 12-1 AM (8)
Jan 25, 1-2 AM (5)
Jan 25, 2-3 AM (0)
Jan 25, 3-4 AM (2)
Jan 25, 4-5 AM (7)
Jan 25, 5-6 AM (2)
Jan 25, 6-7 AM (12)
Jan 25, 7-8 AM (41)
Jan 25, 8-9 AM (20)
Jan 25, 9-10 AM (49)
Jan 25, 10-11 AM (44)
Jan 25, 11-12 PM (36)
Jan 25, 12-1 PM (36)
Jan 25, 1-2 PM (32)
Jan 25, 2-3 PM (66)
Jan 25, 3-4 PM (12)
Jan 25, 4-5 PM (18)
Jan 25, 5-6 PM (14)
Jan 25, 6-7 PM (10)
Jan 25, 7-8 PM (20)
Jan 25, 8-9 PM (6)
Jan 25, 9-10 PM (4)
Jan 25, 10-11 PM (5)
Jan 25, 11-12 AM (8)
Jan 26, 12-1 AM (5)
Jan 26, 1-2 AM (1)
Jan 26, 2-3 AM (5)
Jan 26, 3-4 AM (13)
Jan 26, 4-5 AM (3)
Jan 26, 5-6 AM (4)
Jan 26, 6-7 AM (14)
Jan 26, 7-8 AM (12)
Jan 26, 8-9 AM (33)
Jan 26, 9-10 AM (21)
Jan 26, 10-11 AM (39)
Jan 26, 11-12 PM (18)
Jan 26, 12-1 PM (50)
Jan 26, 1-2 PM (61)
Jan 26, 2-3 PM (42)
Jan 26, 3-4 PM (50)
Jan 26, 4-5 PM (28)
Jan 26, 5-6 PM (15)
Jan 26, 6-7 PM (10)
Jan 26, 7-8 PM (19)
Jan 26, 8-9 PM (11)
Jan 26, 9-10 PM (10)
Jan 26, 10-11 PM (7)
Jan 26, 11-12 AM (7)
Jan 27, 12-1 AM (9)
Jan 27, 1-2 AM (7)
Jan 27, 2-3 AM (11)
Jan 27, 3-4 AM (5)
Jan 27, 4-5 AM (6)
Jan 27, 5-6 AM (2)
Jan 27, 6-7 AM (17)
Jan 27, 7-8 AM (12)
Jan 27, 8-9 AM (26)
Jan 27, 9-10 AM (42)
Jan 27, 10-11 AM (22)
Jan 27, 11-12 PM (68)
Jan 27, 12-1 PM (104)
Jan 27, 1-2 PM (49)
Jan 27, 2-3 PM (74)
Jan 27, 3-4 PM (50)
Jan 27, 4-5 PM (20)
Jan 27, 5-6 PM (15)
Jan 27, 6-7 PM (44)
Jan 27, 7-8 PM (14)
Jan 27, 8-9 PM (34)
Jan 27, 9-10 PM (12)
Jan 27, 10-11 PM (26)
Jan 27, 11-12 AM (6)
Jan 28, 12-1 AM (11)
Jan 28, 1-2 AM (8)
Jan 28, 2-3 AM (5)
Jan 28, 3-4 AM (7)
Jan 28, 4-5 AM (14)
Jan 28, 5-6 AM (3)
Jan 28, 6-7 AM (16)
Jan 28, 7-8 AM (15)
Jan 28, 8-9 AM (78)
Jan 28, 9-10 AM (41)
Jan 28, 10-11 AM (9)
2,762 commits this week Jan 21, 2021 - Jan 28, 2021
Optimize Hydra Eval
Three changes that the hydra eval faster.  In order of importance:

1) Split `native` jobs into `linux` and `darwin`

Reduces the number of times hydra restarts the eval process because
memory is running low.  When both linux and darwin versions are
in the same attribute the evaluation runs out of memory more often
as it alternates between evaluating linux and darwin jobs.

Grouping all the linux and darwin jobs together reduces the number
of times the memory limit is reached.  This is makes the
"no change" eval more than 4x faster (270s vs 1300s).

2) Avoid duplicate `cabal configure`

To get a list of package names in the project we call
`cabalProject`, before using those names to provide the
overrides for another call to `cabalProject`.
`cabalProjectLocal` is not the same for the two calls and
as a result `cabal configure` is run twice (and it is very
slow for this project.  Passing the same `cabalProjectLocal`
value to both calls should improve evaluation greatly
when changes are made to the `cabal.project` or `.cabal`
files.

3) Include jobs to pin plan-nix

Pinning the `plan-nix` output means it is copied to the
hydra cache.  This may not improve eval on the hydra
machine itself, it will make testing evaluation on
other machines faster (since they will have access to the
cached plans).
Merge #2468
2468: Replace `hardfork_at` with `eras` object, and add node_era r=Anviking a=Anviking

# Issue Number

ADP-676


# Overview

<!-- Detail in a few bullet points the work accomplished in this PR -->

- [x] Replace `hardfork_at` with info of all eras
- [x] Instead of storing ProtocolParameters in DB, just keep them in a `TVar`
- [ ] <s>See if we can order the eras correctly in the `era` object (for when the JSON is viewed by humans)</s> Seems impossible to do.
- [x] TODO: Extend swagger
- [ ] Tiny doc tweaks

# Comments

- Could add absolute `slot` field also
- Arguably a bit sad that the eras get sorted seemingly alphabetically in the json

```json
$ cardano-wallet network parameters
{
    "slot_length": {
        "quantity": 1,
        "unit": "second"
    },
    "decentralization_level": {
        "quantity": 74,
        "unit": "percent"
    },
    "genesis_block_hash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
    "blockchain_start_time": "2017-09-23T21:44:51Z",
    "desired_pool_number": 500,
    "epoch_length": {
        "quantity": 432000,
        "unit": "slot"
    },
    "eras": {
        "shelley": {
            "epoch_start_time": "2020-07-29T21:44:51Z",
            "epoch_number": 208
        },
        "mary": null,
        "byron": {
            "epoch_start_time": "2017-09-23T21:44:51Z",
            "epoch_number": 0
        },
        "allegra": {
            "epoch_start_time": "2020-12-16T21:44:51Z",
            "epoch_number": 236
        }
    },
    "active_slot_coefficient": {
        "quantity": 5,
        "unit": "percent"
    },
    "security_parameter": {
        "quantity": 2160,
        "unit": "block"
    },
    "minimum_utxo_value": {
        "quantity": 1000000,
        "unit": "lovelace"
    }
}
```

<!-- Additional comments or screenshots to attach if any -->

<!--
Don't forget to:

 ✓ Self-review your changes to make sure nothing unexpected slipped through
 ✓ Assign yourself to the PR
 ✓ Assign one or several reviewer(s)
 ✓ Jira will detect and link to this PR once created, but you can also link this PR in the description of the corresponding ticket
 ✓ Acknowledge any changes required to the Wiki
 ✓ Finally, in the PR description delete any empty sections and all text commented in <!--, so that this text does not appear in merge commit messages.
-->


Co-authored-by: Johannes Lund <[email protected]>
rework shrinkers on PolicyId, AssetName and TxId to be more aggressive
  There's really nothing simpler between 'TokenB' compared to 'TokenC', or between '1111111111111111111111111' compared to '22222222222222222222222'

  The goal of a shrinker is to provide smaller counter examples, if shrinking a value doesn't make it smaller, the shrinker is pointless. In this very case, the shrinkers are actually sucking of CPU time for nothing as noted by the 'validateGenerators' property sometimes failing to shrink large data structures in a reasonable time.

  However, allowing values to shrink down to one common denominator help to make a counter example more readable by reducing the amount of noise in an output. That is, it's easier if all values of a particular types are the same. Thus, this commit changes shrinkers to reach that common denominator much more aggressively (in one step).
Merge #2468
2468: Replace `hardfork_at` with `eras` object r=Anviking a=Anviking

# Issue Number

ADP-676


# Overview

<!-- Detail in a few bullet points the work accomplished in this PR -->

- [x] Replace `hardfork_at` with info of all eras
- [x] Instead of storing ProtocolParameters in DB, just keep them in a `TVar`
- [ ] <s>See if we can order the eras correctly in the `era` object (for when the JSON is viewed by humans)</s> Seems impossible to do.
- [x] TODO: Extend swagger
- [ ] Tiny doc tweaks

# Comments

- Could add absolute `slot` field also
- Arguably a bit sad that the eras get sorted seemingly alphabetically in the json

```json
$ cardano-wallet network parameters
{
    "slot_length": {
        "quantity": 1,
        "unit": "second"
    },
    "decentralization_level": {
        "quantity": 74,
        "unit": "percent"
    },
    "genesis_block_hash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
    "blockchain_start_time": "2017-09-23T21:44:51Z",
    "desired_pool_number": 500,
    "epoch_length": {
        "quantity": 432000,
        "unit": "slot"
    },
    "eras": {
        "shelley": {
            "epoch_start_time": "2020-07-29T21:44:51Z",
            "epoch_number": 208
        },
        "mary": null,
        "byron": {
            "epoch_start_time": "2017-09-23T21:44:51Z",
            "epoch_number": 0
        },
        "allegra": {
            "epoch_start_time": "2020-12-16T21:44:51Z",
            "epoch_number": 236
        }
    },
    "active_slot_coefficient": {
        "quantity": 5,
        "unit": "percent"
    },
    "security_parameter": {
        "quantity": 2160,
        "unit": "block"
    },
    "minimum_utxo_value": {
        "quantity": 1000000,
        "unit": "lovelace"
    }
}
```

<!-- Additional comments or screenshots to attach if any -->

<!--
Don't forget to:

 ✓ Self-review your changes to make sure nothing unexpected slipped through
 ✓ Assign yourself to the PR
 ✓ Assign one or several reviewer(s)
 ✓ Jira will detect and link to this PR once created, but you can also link this PR in the description of the corresponding ticket
 ✓ Acknowledge any changes required to the Wiki
 ✓ Finally, in the PR description delete any empty sections and all text commented in <!--, so that this text does not appear in merge commit messages.
-->


Co-authored-by: Johannes Lund <[email protected]>